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()
2 番目のラベルには何も表示されませんが、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 に答える