在文本字段中使用输入数据时,对话框中有一些文本字段。
我想检查用户是否按下了回车键,然后保存这些数据。但是,如果未按下回车键以设置回旧数据。
目前,我使用javaFx进行编码。
答案 0 :(得分:7)
我在文本字段注册了一个监听器(这里是Java 8 lambda版本):
filterTextField.setOnKeyReleased(event -> {
if (event.getCode() == KeyCode.ENTER){
// do what is to do
}
});
答案 1 :(得分:1)
试试这个,它默认处理Enter
按键。
TextField tf = new TextField();
String tfData = "";
tf.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
tfData = tf.getText();
}
});
答案 2 :(得分:0)
我知道这已经是一个老话题了,但我希望这对某人有帮助。
textField.setOnKeyPressed(new
EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
if(event.getCode().equals(
KeyCode.ENTER)
) {
// do something
}
}
});
答案 3 :(得分:0)
很容易检查一下,最简单的方法是转到场景构建器中的文本字段代码,然后为“按按键”命名,并将FXML方法粘贴到FXML控制器类中,然后添加以下内容:
@FXML
void the_name_of_the_method(KeyEvent event) {
if(event.getCode() == KeyCode.ENTER) {
do_what_ever_you_want_here();
}
}
答案 4 :(得分:0)
在Java的较早版本中,您可以编写如下内容:例如,假设您有一个带有一些随机值的ComboBox<String>
...因此您可以在该ComboBox上简单地添加一个事件(将其命名为{{1 }})
cBox
但是从Java 1.8开始,您可以改用lambda函数,因此可以用以下代码替换上面的代码:
cBox.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent keyEvent) {
if (keyEvent.getCode().equals(KeyCode.ENTER)) {
// do what you want
}
}
});
不要忘记使用cBox.setOnKeyPressed(keyEvent -> {
if (keyEvent.getCode().equals(KeyCode.ENTER)) {
// do what you want
}
});
而不是equals
。 (https://www.geeksforgeeks.org/difference-equals-method-java/)