我正在开发 JavaFX 2.2 中的应用程序。我正在使用两个字段(用户名和密码)登录到事件目录,并有一个登录按钮。这一切都很完美。但是我添加了一个 KeyEvent EventHandler 来处理按下 ENTER 的关键事件。问题是当用户按下 SHIFT 键时它也会被使用。下面是我的处理程序的代码,应用程序中没有使用其他 KeyEvent 处理程序。
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
...
private EventHandler<KeyEvent> keyListener = new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
if(event.getCode() == KeyCode.ENTER); {
startLogin();
getContext();
try {
checkUserLevel();
} catch (Exception e) {
actionTarget.setText("Unable to authenticate user\n" + userTextField.getText());
}
event.consume();
}
}
};
这是 JavaFX 中的错误吗?
最佳答案
您必须删除分号。来自
if(event.getCode() == KeyCode.ENTER); {
到
if(event.getCode() == KeyCode.ENTER) {
此外,在 Swing 中,我确信您可以添加 ActionListener
到 JTextBox
直接,当 JTextBox
按下 enter 时它会触发 Action 事件作为焦点。它会防止在不相关的上下文中触发您的操作。希望 JavaFX 中存在类似的东西!
关于javafx 2.2 键码输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12521494/