如何检查java-Fx中textField上是否按下了回车键

时间:2015-08-09 09:02:21

标签: javafx-8

在文本字段中使用输入数据时,对话框中有一些文本字段。

我想检查用户是否按下了回车键,然后保存这些数据。但是,如果未按下回车键以设置回旧数据。

目前,我使用javaFx进行编码。

5 个答案:

答案 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/