私は複数のタブを持つプログラムを持っており、すべてのタブにはそれ自身のコントローラがあります。すべてのタブで異なるキーボードショートカットを使用したいコントローラからJavaFXでキーボードショートカットを設定する方法
しかし、私はEventFilterをSceneに追加する必要があるが、Controller.initialize()が実行されてもシーンがまだnullであるため、これを行う方法が見つからない。これを解決するには?
現在、私はこれをやっている:
final KeyCombination openDir = new KeyCodeCombination(KeyCode.O, KeyCombination.CONTROL_DOWN, KeyCombination.SHIFT_DOWN);
list.getScene().addEventFilter(KeyEvent.KEY_PRESSED, event -> {
if (openDir.match(event)) {
logger.debug("Event match.");
}
});
問題は、コントローラの初期化時にシーンがまだ設定されていないため、おそらくあるlist.getScene()
戻りヌルということ、です。
たぶん、あなたは、イベントリスナーを追加し、コントローラにメソッド 'addListener'を持っている必要がありますし、もう少し具体的なことを行う方法を指定でき次第、リストは、シーン –
の一部であるように、そのメソッドを呼び出します?リスナーを追加しようとしましたが、AndroidのようなonShow()イベントはありません。 – lsrom