我想使用JavaFX ListView控件显示一个人员列表(用POJOS编码,并包含名称和姓氏属性).我创建了ListView并将人员列表添加为ObservableList.如果我删除或向ObservableList添加新人,一切正常,但POJO中的更改不会触发ListView的更新.我必须从ObservableList中删除并添加修改后的POJO以触发ListView的更新.如果没有上述解决方法,是否有可能在POJOS中显示更改?
我试图根据自ListView
定义Cell
列表定制自定义objects
.
自定义对象是调用的类名Message
,其中包含消息内容,收件人,时间戳和状态(读取,发送等)的几个字段.
看了这个问题:使用FXML在JavaFX中自定义ListView我已经成功:
但是,我无法链接两者:我似乎无法找到一种方法,以便ListView的当前项被发送到Cell Controller.
这是我的单元工厂代码和ListView项目填充:
final ObservableList observableList = FXCollections.observableArrayList();
observableList.setAll(myMessages); //assume myMessage is a ArrayList<Message>
conversation.setItems(observableList); //the listview
conversation.setCellFactory(new Callback<ListView<Message>, ListCell<Message>>() {
@Override
public ConversationCell<Message> call(ListView<Message> listView) {
return new ConversationCell();
}
});
Run Code Online (Sandbox Code Playgroud)
而现在,ConversationCell类:
public final class ConversationCell<Message> extends ListCell<Message> {
@Override
protected void updateItem(Message item, boolean empty) {
super.updateItem(item, …
Run Code Online (Sandbox Code Playgroud)