我是JavaFX的新手。我想创建Listener
,当用户将标签关闭到TabPane
时,会调用问题对话框。到目前为止,我设法动态创建标签并添加一些自定义配置。
tabAvLabel = new Label(ss);
tabPane.getTabs().add(0, tab); // Place the new tab always first
tabPane.getSelectionModel().select(tab); // Always show the new tab
tabPane.setTabClosingPolicy(TabPane.TabClosingPolicy.ALL_TABS); // Add close button to all new tabs
我不知道我需要使用什么事件监听器以及如何定义它。你能告诉我如何实现这个吗?
答案 0 :(得分:6)
您可以尝试onCloseRequest for Tab class
tab.setOnCloseRequest(new EventHandler<Event>()
{
@Override
public void handle(Event arg0)
{
//your code
}
});
答案 1 :(得分:0)
试试这段代码:
tabAvLabel = new Label(ss);
tabPane.getTabs().add(0, tab); // Place the new tab always first
tabPane.getSelectionModel().select(tab); // Always show the new tab
tabPane.setTabClosingPolicy(TabPane.TabClosingPolicy.ALL_TABS); // Add close button to all new tabs
tabPane.getOnClosed(), setOnClosed(new EventHandler<Event>(){
@Override void handle(Event e){
// What you have to do here
}
})
有关详细信息,请参阅http://docs.oracle.com/javafx/2/api/javafx/scene/control/Tab.html#onClosedProperty
答案 2 :(得分:0)
我已经在jdk8支持中攻击了类似的支持2.2(https://git.eclipse.org/c/efxclipse/org.eclipse.efxclipse.git/tree/bundles/runtime/org.eclipse.fx.e4.controls.fx2/src/org/eclipse/fx/e4/controls/fx2)
答案 3 :(得分:0)
@VagrantAI的答案可行。但您必须在“确定”按钮上单击操作功能添加以下代码:
coverFlow.scrollToPosition(7);
虽然此方法的问题是当您单击“X”关闭窗口时会触发事件。这通常不应该是目的。
要解决此问题,请在加载窗口的类中添加标志(或静态变量)。因此,每次加载窗口时,将标志设置为false。关闭窗口时,仅在单击“确定”按钮时设置标志。然后你可以对这个标志的价值采取行动。