4

キーボードのキーが押されたときにハンドラーメソッドを呼び出して、キー文字を押したいと思います。そこで、fxml ファイルのボタンに次の行を書きました。

<Button fx:id="button" layoutX="126.0" layoutY="90.0" onKeyPressed="#handleButton" text="Test!" />

いずれかのキーが押されると、コントローラー クラスの handleButton メソッドが呼び出され、KeyEvent パラメーターが渡されます。だから私はその中にこのメソッドを書きました:

@FXML
private void handleButton(KeyEvent event) {
    System.out.println(event);
}

fxml ファイルで、NetBeans は「Handler メソッドにアクセスできません。公開するか、@FXML で注釈を付けてください。」というエラーを表示しますが、これは既に実行済みです。

private void handleButton(KeyEvent event)からprivate void handleButton(Event event)NetBeansに変更するとすぐに、エラーが表示されなくなり、アプリが動作します。

このページで私とまったく同じように onKeyPressed を使用する答えを見つけたので、私の場合はなぜそれが機能しないのか本当に混乱しています。

ご協力いただきありがとうございます、

ビデオ

4

2 に答える 2

12

おそらく間違ってインポートしましたKeyEvent。である必要がありますjavafx.​scene.​input.KeyEvent

于 2013-07-28T12:18:56.417 に答える