JavaFX - 从 TabPane 中删除选项卡不会触发 setOnClosed() 回调
JavaFX - Removing a Tab from a TabPane does not trigger the setOnClosed() callback
我想在 JavaFX 选项卡的 setOnClosed
回调中执行代码。
但是,当我从 TabPane 中删除 Tab 时:
TabPane rootTabPane;
rootTabPane.getTabs().remove(tab1);
在选项卡的控制器中,永远不会执行回调:
tab1.setOnClosed(event -> timerStop());
当通过鼠标单击关闭选项卡时,回调是 运行 但在代码中删除选项卡时不会。
如何关闭代码中的选项卡以便调用回调?我有许多行为截然不同的选项卡,想要一个通用方法。
谢谢!
TAB_CLOSED
事件只有在选项卡因用户交互而关闭时才会触发。以编程方式删除 Tab
不会触发此事件,但不会阻止您自己触发它:
public static void removeTabWithEvent(Tab tab) {
tab.getTabPane().getTabs().remove(tab);
Event closedEvent = new Event(tab, tab, Tab.CLOSED_EVENT);
Event.fireEvent(tab, closedEvent);
}
我想在 JavaFX 选项卡的 setOnClosed
回调中执行代码。
但是,当我从 TabPane 中删除 Tab 时:
TabPane rootTabPane;
rootTabPane.getTabs().remove(tab1);
在选项卡的控制器中,永远不会执行回调:
tab1.setOnClosed(event -> timerStop());
当通过鼠标单击关闭选项卡时,回调是 运行 但在代码中删除选项卡时不会。
如何关闭代码中的选项卡以便调用回调?我有许多行为截然不同的选项卡,想要一个通用方法。
谢谢!
TAB_CLOSED
事件只有在选项卡因用户交互而关闭时才会触发。以编程方式删除 Tab
不会触发此事件,但不会阻止您自己触发它:
public static void removeTabWithEvent(Tab tab) {
tab.getTabPane().getTabs().remove(tab);
Event closedEvent = new Event(tab, tab, Tab.CLOSED_EVENT);
Event.fireEvent(tab, closedEvent);
}