绑定到表达式进行评估

时间:2014-05-16 15:06:51

标签: java binding javafx-2

使用JavaFX2我有这段代码:

FXMLLoader loader = new FXMLLoader(App.class.getResource("App.fxml"));
TabPane tabPane = (TabPane) loader.getNamespace().get("tabPane");
Tab tab = (Tab) loader.getNamespace().get("closeAllTab");

现在,我希望在tab少于3个标签(标签可以关闭)时禁用tabPane。我需要这样的绑定:

 tab.disableProperty().bind(tabPane.disableProperty());

但是,当然,我需要评估tabPane.getTabs().size()。怎么做?

1 个答案:

答案 0 :(得分:0)

您应该考虑使用ObservableList绑定:

tabPane.getTabs().addListener(new ListChangeListener() {
    public void onChanged(ListChangeListener.Change<? extends E> c) {
        tabPane.setDisabled(tabPane.getSize() < 3);
    }
});

Java 8表单:

tabPane.getTabe().addListener(e -> tabPane.setDisabled(tabPane.getSize() < 3));