Глазедисты и JTable с несколькими источниками

StackOverflow https://stackoverflow.com/questions/3856744

  •  27-09-2019
  •  | 
  •  

Вопрос

у меня 3 ArrayListS и A. 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 слишком?

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top