在文本字段中键入时,启用按键ENTER以激活JavaFX中的按钮

时间:2013-08-29 19:04:41

标签: javafx-2 javafx keyboard-events scenebuilder

例如,在Google搜索框中输入内容,点击ENTER即可激活搜索

几天前我刚刚介绍了JavaFX和Scene Builder,所以我在这里学习基础知识。我有最新版本的JavaFX,并使用Scene Builder来促进动作事件。此外,任何指向相关教程的指针都会有所帮助。在当天的某个时刻,我专注于Scene Builder编码面板的键盘部分,特别是“On Key Released”事件没有结果。提前致谢

以下是我正在尝试做的一个粗略的想法:

@FXML
Text Field theTextField;

@FXML
Button theButton;

@FXML  
void ButtonPressed() {
    //do stuff here
}

@FXML
//when ENTER is pressed the button is activated
void textFieldEnterPressed() {
    ButtonPressed();
}

2 个答案:

答案 0 :(得分:8)

FXML文件中,添加onKeyPressed处理程序

 <TextField fx:id="yourTextField" onKeyPressed="#handleEnterPressed">

在您Controller

中实施处理程序
@FXML
public void handleEnterPressed(KeyEvent event)
    if (event.getCode() == KeyCode.ENTER) {
        // do some actions 
    }
}

答案 1 :(得分:5)

在TextField中,当您按Enter键时,您会通过onAction收到通知。在Java代码中,您可以添加:

@FXML
private void handleTFAction(ActionEvent event) {
    TextField source = (TextField)event.getSource();
    System.out.println("You entered: "+source.getText());
}

在FXML中(或通过JavaFX SceneBuilder设计器)将其连接到TextField的OnAction事件。在FXML中,它看起来像这样:

<TextField onAction="#handleTFAction" ... />