gpt4 book ai didi

java - 键 SPACE 的作用类似于聚焦按钮

转载 作者:行者123 更新时间:2023-11-30 02:55:00 25 4
gpt4 key购买 nike

每当按下 SPACE 键时,都会将其注册并处理为最后按下(聚焦)的按钮。我无法将其捕获为 KeyEvent,它充当按钮。

我想从按下的按钮和键盘按键生成并传递字符。

这是 Controller 类中我的代码的处理程序部分:

public void handleKeys(KeyEvent key) {
char chr = key.getText().charAt(0);
handleSymbols(chr);
key.consume();
}

public void handleBtns(ActionEvent buttonPressed) {
char chr = buttonPressed.getSource().toString().toLowerCase().charAt(buttonPressed.getSource().toString().length() - 2);
handleSymbols(chr);
buttonPressed.consume();
}

这是 FXML 文件的开头:

 <?xml version="1.0" encoding="UTF-8"?>

<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<BorderPane fx:id="container" prefHeight="500.0" prefWidth="400.0" style="-fx-background-color: #00e600"
stylesheets="/sample/main.css" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="sample.Controller"
onKeyPressed="#handleKeys">

<left>
<VBox prefHeight="300.0" prefWidth="50.0">
<BorderPane.margin>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
</BorderPane.margin>

<Button onAction="#handleBtns" prefHeight="135.0" prefWidth="50" text="+">
<VBox.margin>
<Insets bottom="20.0" />
</VBox.margin>
</Button>
<Button onAction="#handleBtns" prefHeight="135.0" prefWidth="50" text="-" />

</VBox>
</left>

这里有类似的东西,但是对于SWING,所以它不起作用:Disabling space bar triggering click for JButton

如何取消绑定(bind) SPACE 作为聚焦按钮的默认键?我只是不想让 SPACE 充当按钮。

最佳答案

我在主类的舞台上添加了一个 eventFilter 并且它起作用了

addEventFilter(KeyEvent.KEY_PRESSED, k -> {
if ( k.getCode() == KeyCode.SPACE){
k.consume();
}
});

关于java - 键 SPACE 的作用类似于聚焦按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37510675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com