3

我正在开发 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 中的错误吗?

4

1 回答 1

5

您必须删除分号。从

if(event.getCode() == KeyCode.ENTER); {

if(event.getCode() == KeyCode.ENTER) {

此外,在 Swing 中,我确信您可以直接将 an 添加ActionListener到 a中,并且当as 焦点JTextBox按下 enter 时它会触发动作事件。JTextBox它将防止在不相关的上下文中触发您的操作。希望JavaFX中存在类似的东西!

于 2012-09-20T21:58:18.057 回答