java - 将按钮禁用属性绑定(bind)到 fxml 中的 TreeView 选择

标签 java binding javafx fxml

我在 fxml 中找不到任何简单绑定(bind)的示例。

如果在 TreeView 上选择了一个项目,我想启用/禁用按钮。

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

<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。
该按钮应启用和禁用。

有什么想法吗?

最佳答案

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

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);
        }
});

关于java - 将按钮禁用属性绑定(bind)到 fxml 中的 TreeView 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14678177/

相关文章:

java - 为什么 int[] 被视为对象而不是对象数组

java - 更改时更改显示值

java - 无法从 javafx 中的另一个 Controller 更新场景

JavaFX 属性绑定(bind)

java - 在 jUnit 中测试有序的 CRUD

java - 限制 Joda Time 的日期范围

java - FFmpeg 日志记录在 java 命令运行中不起作用

c# - 将两个不同属性绑定(bind)在一起的简单方法?

WPF 数据网格 : CanContentScroll property causing odd behavior

java - 如何处理JavaFX的线程模型和大数据变化