Bonjour!
Je vous écris car je travaille sur une JTable définie comme ceci:
Je précise que TableauResultatsModel est mon model, qui hérite de AbstractTableModel, et TableSorter est la classe fournie dans le tutorial de Sun sur les JTable qui permet de trier les lignes selon des clics sur les headers des colonnes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 import javax.swing.*; import java.util.*; class TableauResultats extends JTable { //avec cette classe nous disposons des fonctionnalités de JTable, plus une fonction qui nous renvoit la ArrayList contenant les éléments affichés public TableauResultats(ArrayList<ElementDeLHolotheque> data) { super(new TableSorter(new TableauResultatsModel(data))); getTableHeader().setToolTipText("Cliquer pour modifier le critère de classement des éléments."); sorter = (TableSorter) this.getModel(); trm = (TableauResultatsModel) sorter.getTableModel(); sorter.setTableHeader(getTableHeader()); } public ArrayList<ElementDeLHolotheque> getListe() { return trm.getData(); } public TableauResultatsModel getMonModel() { return trm; } public TableSorter getSorter() { return sorter; } TableSorter sorter; TableauResultatsModel trm; }
La méthode getData() de ma classe renvoie une ArrayList
qui est un champ de mon model.
Mon problème: je voudrais, depuis mon interface Graphique, choisir de ne pas afficher certains des objets de ma ArrayList dans mon JTable.
Mon idée: donner à chacun de mes objets ElementDeLHolotheque un champ booléen "affichage" qui vaut "true" s'ils doivent être affichés, "false" sinon.
Donc j'aurai une méthode qui modifiera "affichage" sur chaque objet, et il faudra que la JTable réagisse en effaçant ou en réaffichant certains objets.
Vous remarquerez que je peut récupérer mon ArrayList qui contient les données. En effet j'en ai besoin pour effectuer des sauvegardes, et l'idéal serait que la nouvelle méthode masque ou démasque des objets, mais ne les supprime pas de la liste (et ne change pas leur place dans la liste).
En clair, si mon ArrayList est {aaa, bbb, ccc, ddd}
et que je choisit de n'afficher que aaa et ddd dans ma JTable, je veux qu'ils gardent leurs indices 0 et 3.
Toute aide me serait très précieuse!






Répondre avec citation
Partager