GlazedLists и JTable с несколькими источниками - PullRequest
0 голосов
/ 04 октября 2010

У меня есть 3 ArrayList с и JTable.
Я хотел бы иметь возможность добавлять / редактировать / удалять элементы из выбранных (из одного из 3) ArrayList выбрав элементы в 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);
/* ... */

Как я могу изменить источник EventList или FilterList на2. или 3. ArrayList, поэтому, если я отредактирую EventList, он также изменит источник ArrayList?

1 Ответ

0 голосов
/ 04 октября 2010

Насколько я знаю, Glazed Lists не будет обрабатывать распространяющиеся изменения в ваших списках событий обратно в ваши ArrayLists. Фактически, в вашем примере ваш список событий и список массивов никак не связаны - список событий просто содержит все те же элементы, что и список массивов. См. Javadoc для статического помощника GlazedLists.eventList здесь

Что вы, вероятно, хотите сделать, это установить прослушиватель в ваш список событий и распространить любые изменения в вашем списке массивов. Также убедитесь, что вы управляете списком событий в ответ на события удаления GUI. Если вы измените список фильтров, события не будут распространяться назад в список событий.

...