如果节点显示在屏幕上,JavaFX8会触发事件

时间:2014-06-20 16:17:42

标签: javafx javafx-8

在JavaFX 8中,我在选项卡式窗格中有几个选项卡,这些选项卡是根据某些逻辑动态添加的。标签的内容是从FXML加载的。

当选项卡处于活动状态且可见时,必须通过启动任务来填充该选项卡中存在的节点之一。如果选择了其他选项卡,则必须停止此任务。即当标签内容可见时,我应该开始一个任务,如果标签不再可见,我需要停止任务。

我已经尝试将changeListener附加到选项卡中某个Node的visibleProperty,但这不会产生预期的changeEvent。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

将监听器附加到selectedItem选择模型的TabPane属性:

tabPane.getSelectionModel()
    .selectedItemProperty()
    .addListener((obs, oldTab, newTab) -> {
        // if oldTab == tab with your node, stop task
        // if newTab == tab with your node, start task
    });