Bonjour à tous,
j'ai une classe qui affiche une interface comprenant une jlist et une jtable.
les 2 composants sont complétés avec des données que je lis dans des fichiers XML (style BDD)
en gros ma liste affiche la liste des classes d'une école
et quand je clique sur l'un des items je veux voir les nom et prénoms des élèves de la classe sélectionnée.
pour les deux composants j'utilise des modeles.
ma question c'est comment faire pour récupérer l'index de la ligne sélectionnée, le balancer à mon modele de table et mettre à jour ma table?
voila des petits bout de codes (avec des données en durs pour le moment dans le modele de table)
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 public class IHMEleve extends JFrame implements ListSelectionListener{ (...) ListeClasseModel listeClasses=new ListeClasseModel(liaison); jlisteClasses = new JList (listeClasses); (...) EleveTableModel eleveTableModel= new EleveTableModel(liaison); JTable tableauEleve= new JTable(eleveTableModel); tableauEleve.createDefaultColumnsFromModel(); (...) public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting()) { int indexSelection=e.getFirstIndex(); System.out.println(indexSelection); } } (...) } public class EleveTableModel extends AbstractTableModel{ ClasseEleve liaison; private Vector nomColonnes; private Eleve e= new Eleve(); //constructeur public EleveTableModel(ClasseEleve l){ liaison=l; nomColonnes=new Vector(); nomColonnes.add("nom"); nomColonnes.add("prenom"); } // retourne le nombre de colonne s public int getColumnCount() { return nomColonnes.size(); } // retourne le nombre de lignes public int getRowCount() { Classe c= liaison.treeClasse.get(1); // données en dur!!! return liaison.maMap.get(c).size(); } // retourne le nom de la colonne d'indice indexColonne public String getColumnName(int indexColonne) { String nomCol=""; if (indexColonne<=getColumnCount()) nomCol=(String)nomColonnes.elementAt(indexColonne); return nomCol; } //retourne l'objet de la cellule(indexLigne, indexColonne) public Object getValueAt(int indexLigne, int indexColonne) { Object retour= new Object(); // si on a cliqué sur une classe Classe c=liaison.treeClasse.get(1); // données en dur!!! if (liaison.maMap.get(c)!=null){ e= liaison.maMap.get(c).get(indexLigne); switch (indexColonne){ case 0: retour= e.getNom(); break; case 1: retour= e.getPrenom(); break; default: retour= null; break; } } else{ retour= ""; } return retour; } }
merci pour votre aide!!!!
Partager