对不起这些问题......但我再次陷入困境。
我问这些问题所以我可以充分利用我的时间/学习。
我正在尝试使用回车键触发点击事件(所以当我手动点击登录btn时)。
我到目前为止的代码
码
usernameField.setOnKeyPressed((KeyEvent event) -> {
if(event.getCode()==KeyCode.ENTER){
loginBtn.fire();
System.out.println("Worked");
}
});
几乎可以做到这一点。系统输出消息出现,但现在激活loginBtn。
如果有所不同,我正在使用JavaFX和JFXButtons /文本框
答案 0 :(得分:2)
当用户按下回车键时,文本字段会触发操作事件。所以你需要的只是
EventHandler<ActionEvent> loginHandler = e -> {
// handle login here...
};
usernameTextField.setOnAction(loginHandler);
loginBtn.setOnAction(loginHandler);
或者,如果您愿意;
usernameTextField.setOnAction(e -> handleLogin());
loginBtn.setOnAction(e -> handleLogin());
// ...
private void handleLogin() {
// handle login here...
}
如果您使用的是FXML,则可以将两个onAction
处理程序映射到同一个控制器方法:
<TextField fx:id="usernameTextField" onAction="#login" />
<Button fx:id="loginBtn" text="Log In" onAction="#login" />
然后在控制器中
public class Controller {
// ...
@FXML
private void login() {
// login action here..
}
// ...
}