关闭选项卡时确认对话框窗口

时间:2013-06-28 18:21:17

标签: javafx-2 javafx javafx-8

我是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

我不知道我需要使用什么事件监听器以及如何定义它。你能告诉我如何实现这个吗?

4 个答案:

答案 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)

答案 3 :(得分:0)

@VagrantAI的答案可行。但您必须在“确定”按钮上单击操作功能添加以下代码:

coverFlow.scrollToPosition(7);

虽然此方法的问题是当您单击“X”关闭窗口时会触发事件。这通常不应该是目的。

要解决此问题,请在加载窗口的类中添加标志(或静态变量)。因此,每次加载窗口时,将标志设置为false。关闭窗口时,仅在单击“确定”按钮时设置标志。然后你可以对这个标志的价值采取行动。