複数のソースを備えたGlazedListsおよびJtable
-
27-09-2019 - |
質問
私は3つあります ArrayList
sおよびa JTable
.
から要素を追加/編集/削除できるようにしたい 選択しました (3つのいずれかから) ArrayList
の要素を選択します JTable
たとえば、ボタンをクリックします。
私はこのコードを1つだけ使用するためのコードを持っています 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
それも?
解決
私の知る限り、Glazedリストは、イベントリストの伝播変更を処理しません。基礎となるアレイリストに戻ります。実際、例では、イベントリストと配列リストは決してリンクされていません。イベントリストには、配列リストと同じアイテムがすべて含まれています。 GlazedLists.EventList Static Helperについては、Javadocを参照してください ここ
おそらくやりたいのは、イベントリストにリスナーをインストールし、配列リストの変更を伝播することです。また、GUI削除イベントに応じてイベントリストを操作してください。フィルターリストを変更すると、イベントはイベントリストに逆行しません。
所属していません StackOverflow