检查关闭JAVAFX时TabPane中是否没有选项卡

检查关闭JAVAFX时TabPane中是否没有选项卡,javafx,Javafx,我尝试了几种方法: tabPane.getSelectionModel().selectedItemProperty().addListener((e, o, n) if (tabPane.getTabs().isEmpty()) someButton.setDisable(false); 创建选项卡时,请执行以下操作: tab.setOnCloseRequest(e -> if (tabPane.getTabs().isEmpty())

我尝试了几种方法:

tabPane.getSelectionModel().selectedItemProperty().addListener((e, o, n)
        if (tabPane.getTabs().isEmpty()) someButton.setDisable(false);
创建选项卡时,请执行以下操作:

tab.setOnCloseRequest(e -> 
                if (tabPane.getTabs().isEmpty())  someButton.setDisable(false);

但两者都不起作用。第二种方法显然是错误的,因为它在实际关闭选项卡之前检查是否有选项卡。有什么解决办法吗?非常感谢

在TabPane
可观察列表
上创建
isNotEmpty BooleanBinding


在选项卡窗格上创建
isNotEmpty BooleanBinding


我不确定下面的内容是否是您想要的,但您可以在tabpane中检查匹配选项卡列表的大小{ TabPane TabPane=tab.getTabPane();
if(tabPane.getTabs().size()我不确定下面的是否是您想要的,但是您可以检查tabPane中匹配的选项卡列表的大小{ TabPane TabPane=tab.getTabPane(); if(tabPane.getTabs().size())
TabPane tp = new TabPane(new Tab("A"),new Tab("B"));
final BooleanBinding empty = Bindings.isNotEmpty(tp.getTabs());
Button someButton = new Button();
someButton.disableProperty().bind(empty);
tab.setOnCloseRequest(event -> {
    TabPane tabPane = tab.getTabPane();
    if (tabPane.getTabs().size() <= 1) {
        // don't allow the last tab to be closed.
        event.consume();
        return;
    } 
});