相关疑难解决方法(0)

JavaFX:如果ObservableList的元素发生更改,则更新ListView

我想使用JavaFX ListView控件显示一个人员列表(用POJOS编码,并包含名称和姓氏属性).我创建了ListView并将人员列表添加为ObservableList.如果我删除或向ObservableList添加新人,一切正常,但POJO中的更改不会触发ListView的更新.我必须从ObservableList中删除并添加修改后的POJO以触发ListView的更新.如果没有上述解决方法,是否有可能在POJOS中显示更改?

java listview javafx-2

30
推荐指数
4
解决办法
3万
查看次数

具有自定义对象的JavaFX自定义单元工厂

我试图根据自ListView定义Cell列表定制自定义objects.

自定义对象是调用的类名Message,其中包含消息内容,收件人,时间戳状态(读取,发送等)的几个字段.

看了这个问题:使用FXML在JavaFX中自定义ListView我已经成功:

  1. 创建了一个带有自定义单元格的ListView,其中单元格设计在FXML文件中定义;
  2. 关联控制器,以便每个单元格数据可以用集合的当前项填充;

但是,我无法链接两者:我似乎无法找到一种方法,以便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)

java listview javafx custom-cell

11
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×2

listview ×2

custom-cell ×1

javafx ×1

javafx-2 ×1