【问题标题】:Is there a CHANGEABLE ListProperty in JavaFX?JavaFX 中是否有 CHANGEABLE ListProperty?
【发布时间】:2014-06-26 12:10:52
【问题描述】:
JavaFX 中是否有 CHANGEABLE ListProperty?
我需要一个ListProperty 支持add() 和remove() 方法,但我找不到。
SimpleListProperty 将抛出 UnsupportedOperationException。
我发现的只是使用初始化程序来设置内容,但这不是我需要的。
我需要从那里开始一个空的 Property end buld。
我不敢相信没有这样的事情;我一定是盲人,不知何故。
请有人指出我正确的方向吗?
【问题讨论】:
标签:
java
javafx
add
listproperty
【解决方案1】:
原来ListProperty() 是一个空包装器。
它不初始化包装的ObservableList<>。
这从文档中绝对不干净并且抛出的UnsupportedOperationException 具有误导性(应该是NPE)。
默认构造函数在正常使用中是无用的,使用类似:
ListProperty<String> xxx = new SimpleListProperty<>(FXCollections.observableArrayList());
注意:使用简单的ObservableList 对我不起作用,因为我使用的是Property 方法(例如:getBean())
【解决方案2】:
Observable 列表是您正在寻找的列表。它有添加和删除方法。
import javafx.collections.ObservableList;
ObservableList<String> list = FXCollections.observableArrayList();
list.add("Jaya");
list.add("Prasad");
list.add("test");
list.remove(list.indexOf("test"));