在文本字段中按下回车键时触发点击事件
firing a click event when pressing enter inside a textfield
抱歉提出问题...但我又有点卡住了。
我问这些问题是为了充分利用我的 time/learning。
我正在尝试使用回车键触发点击事件(因此当我手动点击登录按钮时)。
我目前的代码
代码
usernameField.setOnKeyPressed((KeyEvent event) -> {
if(event.getCode()==KeyCode.ENTER){
loginBtn.fire();
System.out.println("Worked");
}
});
几乎可以达到预期的效果。出现系统输出消息,但现在会触发 loginBtn。
我正在使用 JavaFX,JFXButtons/textboxes 如果这有区别的话
当用户按下回车键时,文本字段会触发动作事件。所以你只需要
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..
}
// ...
}
抱歉提出问题...但我又有点卡住了。
我问这些问题是为了充分利用我的 time/learning。
我正在尝试使用回车键触发点击事件(因此当我手动点击登录按钮时)。
我目前的代码
代码
usernameField.setOnKeyPressed((KeyEvent event) -> {
if(event.getCode()==KeyCode.ENTER){
loginBtn.fire();
System.out.println("Worked");
}
});
几乎可以达到预期的效果。出现系统输出消息,但现在会触发 loginBtn。
我正在使用 JavaFX,JFXButtons/textboxes 如果这有区别的话
当用户按下回车键时,文本字段会触发动作事件。所以你只需要
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..
}
// ...
}