3

我仅在 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()
第二个标签不显示任何内容,但应显示 true 或 false。
该按钮应启用和禁用。

有任何想法吗?

4

1 回答 1

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);
        }
});
于 2013-11-14T19:44:08.557 回答