2010-10-04 5 views
0

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

+0

Я хочу уточнить, во второй строке, должен ли «список list» быть «eventList»? – Andy

+0

Да, это должно быть 'eventList'. Отредактировал вопрос. – user

ответ

0

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

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

Смежные вопросы