java - 如果在 ListView JavaFx 中选择了项目

标签 java javafx

如果我有一个列表和一个按钮。我希望禁用该按钮,直到选择该列表中的项目为止,最好的使用方法是什么?

最佳答案

ListView有一个名为 selectionModel 的属性其中包含 MultipleSelectionModel目的。此选择模型具有表示选择的项目(如果有)的属性/列表。该选择模型有两种模式:

  1. SINGLE:一次只能选择一项。
  2. MULTIPLE:一次可以选择任意数量的项目。

您使用的选择模式可能很重要,但我并不肯定。对于单选,我会观察 selectedItemselectedIndex 属性。对于多重选择,我会观察 selectedItemsselectedIndices 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) Buttondisable 属性。

第二个选项使用 Bindings.isEmpty它创建一个 BooleanBinding,当 ObservableList 为空时,该值将为 true。与第一个选项一样,disable 属性绑定(bind)到此 BooleanBinding

关于java - 如果在 ListView JavaFx 中选择了项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52977737/

相关文章:

java - mac-osx 10.9.4 Hadoop 2.7.1线程 “main” java.lang.UnsupportedClassVersionError中的异常:不支持的major.minor版本51.0

java - 在对象数组中找不到符号

JavaFX:禁用 TableView 的水平滚动条

java - 限制菜单中可见行数: JavaFX

java - 在 JavaFX 中使用新按钮动态更新 GridPane -> 如何重绘?

java - 为什么我的自定义 JavaFX MapView 请求通过 OSM 获得 403 错误?

java - 设置值时出现 NullPointerException

java - 获取在 doGet() 中创建的单选按钮的值

java - 解析 YAML 文件

scala - 一个最简单的scalafx例子无法编译