3

私は JavaFX 2.2 でアプリケーションに取り組んでいます。2 つのフィールド (ユーザー名とパスワード) を使用して Active Directory にログオンしており、ログオン ボタンがあります。それはすべて完璧に機能します。ただし、Enter キーを押すキー イベントを処理する KeyEvent EventHandler を追加しました。問題は、ユーザーが 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 では、 anActionListenerを aに直接追加できることは確かです。また、 as フォーカスJTextBox中に Enter キーを押すと、アクション イベントがトリガーされます。JTextBox無関係なコンテキストでアクションがトリガーされるのを防ぎます。そのようなものが JavaFX に存在することを願っています!

于 2012-09-20T21:58:18.057 に答える