Question

J'ai 3 ArrayLists et un JTable.
Je voudrais pouvoir ajouter / modifier des éléments / retirer de la sélectionné (de l'un des 3) ArrayList en sélectionnant les éléments dans le JTable et par exemple en cliquant sur un bouton.

Je le code pour utiliser un seul 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);
/* ... */

Comment pourrais-je changer le source de la EventList ou FilterList au 2. ou 3. ArrayList donc si je modifier le EventList il modifiera la ArrayList source aussi?

Était-ce utile?

La solution

Pour autant que je sache, les listes vitrés ne traitera pas propager des changements dans vos listes d'événements retourner à ArrayLists sous-jacents. En fait, dans votre exemple, votre liste d'événements et une liste de tableau ne sont pas liés de quelque façon - la liste des événements ne contient que tous les mêmes éléments que la liste de tableau. Voir la javadoc pour l'assistant statique GlazedLists.eventList ici

Qu'est-ce que vous voulez sans doute faire est d'installer un écouteur sur votre liste d'événements et propagez des modifications à votre liste de tableau. De plus, assurez-vous que vous manipuler la liste des événements en réponse à l'interface graphique des événements de suppression. Si vous modifiez la liste des filtres les événements ne se propage pas en arrière à la liste des événements.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top