1

例如在谷歌搜索框中输入 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();
}
4

2 回答 2

8

在您的FXML文件中,添加一个onKeyPressed处理程序

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

在你身上实现处理程序Controller

@FXML
public void handleEnterPressed(KeyEvent event)
    if (event.getCode() == KeyCode.ENTER) {
        // do some actions 
    }
}
于 2013-08-29T22:44:13.987 回答
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" ... />
于 2013-08-29T21:35:00.587 回答