GlazedLists и JTable с несколькими источниками

У меня 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 ответ

Решение

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

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

Другие вопросы по тегам