绑定按钮禁用属性到fxml中的树视图选择

时间:2013-02-03 22:36:45

标签: java binding javafx fxml

我在fxml中找不到任何简单绑定的例子。

如果在树状视图中选择了某个项目,我想启用/禁用按钮。

我试过这段代码(标签用于测试绑定):

<Scene xmlns:fx="http://javafx.com/fxml">
  <BorderPane>
    <top>
      <Button text="test" disable="${treeView.selectionModel.selectedItem.isNull}" />
    </top>
    <center>
      <TreeView fx:id="treeView" />
    </center>
    <bottom>
      <Label text="${treeView.selectionModel}" />
      <Label text="${treeView.selectionModel.selectedItem.isNull}" />
    </bottom>
  </BorderPane>
</Scene>

此代码不会产生任何错误。

第一个标签显示treeView的选择模型toString() 第二个标签什么都不显示,但应显示真或假 该按钮应启用和禁用。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

从代码中你可以做到这样的事情:

treeview.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>()
    {
        @Override
        public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue)
        {
            if (newValue.intValue() > 0)
                button.setDisable(true);
            else
                button.setDisable(false);
        }
});