GlazedLists和JTable有多个来源

时间:2010-10-04 15:37:22

标签: java jtable glazedlists

我有3 ArrayList个和JTable 我希望能够通过选择ArrayList中的元素来添加/编辑/删除所选(来自3个中的一个)JTable中的元素,例如点击在一个按钮上。

我有这个代码只使用一个ArrayList

/* ... */
EventList<MyClass> eventList = GlazedLists.eventList(myFirstArrayList);
SortedList<MyClass> sortedList = new SortedList<MyClass>(eventList, null);
filterList = new FilterList<MyClass>(sortedList);
EventTableModel<MyClass> listModel = new EventTableModel<MyClass>(filterList,
        myTableFormat);
table.setModel(listModel);
TableComparatorChooser.install(table, sortedList,
        AbstractTableComparatorChooser.MULTIPLE_COLUMN_MOUSE);
selectionModel = new EventSelectionModel<MyClass>(filterList);
table.setSelectionModel(selectionModel);
/* ... */

我如何将EventListFilterList来源更改为2.或3. ArrayList,以便我编辑{{ 1}}它也会修改源EventList吗?

1 个答案:

答案 0 :(得分:0)

据我所知,Glazed Lists不会将事件列表中的传播更改处理回基础ArrayLists。实际上,在您的示例中,事件列表和数组列表没有以任何方式链接 - 事件列表只包含与数组列表相同的所有项目。请参阅GlazedLists.eventList静态助手here

的javadoc

您可能想要做的是在事件列表中安装一个侦听器,并将任何更改传播到您的阵列列表。还要确保操作事件列表以响应GUI删除事件。如果修改过滤器列表,事件将不会向后传播到事件列表。