如果我有一个列表和一个按钮。我希望禁用该按钮,直到选择该列表中的项目为止,最好的使用方法是什么?
最佳答案
ListView
有一个名为 selectionModel
的属性其中包含 MultipleSelectionModel
目的。此选择模型具有表示选择的项目(如果有)的属性/列表。该选择模型有两种模式:
SINGLE
:一次只能选择一项。MULTIPLE
:一次可以选择任意数量的项目。
您使用的选择模式可能很重要,但我并不肯定。对于单选,我会观察 selectedItem
或 selectedIndex
属性。对于多重选择,我会观察 selectedItems
或 selectedIndices
ObservableList
。 (注意:虽然我并不肯定,但我希望无论选择模式如何,这两种方法都可以工作)
// single selection mode
button.disableProperty()
.bind(listView.getSelectionModel().selectedItemProperty().isNull());
// multiple selection mode
button.disableProperty()
.bind(Bindings.isEmpty(listView.getSelectionModel().getSelectedItems()));
第一个选项使用 isNull
selectedItem
属性的方法。该方法返回一个 BooleanBinding
,它绑定(bind) Button
的 disable
属性。
第二个选项使用 Bindings.isEmpty
它创建一个 BooleanBinding
,当 ObservableList
为空时,该值将为 true
。与第一个选项一样,disable
属性绑定(bind)到此 BooleanBinding
。
关于java - 如果在 ListView JavaFx 中选择了项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52977737/