【发布时间】:2016-11-18 16:44:02
【问题描述】:
我的程序有多个标签,每个标签都有自己的控制器。我想在每个选项卡上都有不同的键盘快捷键。
但是我找不到这样做的方法,因为我需要将 EventFilter 添加到场景,但是当 Controller.initialize() 运行时,场景仍然为空。如何解决?
目前我正在这样做:
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() 返回 null 这可能是因为控制器初始化时尚未设置场景。
【问题讨论】:
-
也许你应该有一个方法
addListener到控制器,添加事件侦听器并在列表是场景的一部分时立即调用该方法 -
您能具体说明一下如何做到这一点吗?我尝试添加侦听器,但没有像 Android 中那样的 onShow() 事件。
标签: java javafx controller