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. Если вы измените список фильтров, события не будут распространяться назад в список событий.