Bonjour,
Je souhaiterais avoir des exemples de code de jtable comprenant des ImageIcons et ou il serait possibles d’ajouter des lignes.
Merci de votre aide.
Bonjour,
Je souhaiterais avoir des exemples de code de jtable comprenant des ImageIcons et ou il serait possibles d’ajouter des lignes.
Merci de votre aide.
un des mes ancien code... rien de très pro mais ça peut te servir
le table model
en espérant qu'il te sera utile
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172 public class CanariTableModel extends AbstractTableModel { private static final ImageIcon iconMale = new ImageIcon("img/Male.gif" ); private static final ImageIcon iconFemele = new ImageIcon("img/Femelle.gif" ); private static final ImageIcon iconJeune = new ImageIcon("img/Canari.gif" ); private Annee annee =null; public CanariTableModel(String nomFichier){ annee = Annee.lire(nomFichier); } /** * nombre de colonnes * @see javax.swing.table.TableModel#getColumnCount() */ public int getColumnCount() { return 8; } /** * nombre de lignes * @see javax.swing.table.TableModel#getRowCount() */ public int getRowCount() { return annee.getAnnee().size(); } /** * récupère la valeur à aficher * @see javax.swing.table.TableModel#getValueAt(int, int) */ public Object getValueAt(int rowIndex, int columnIndex) { Canari unCanari = get(rowIndex); switch (columnIndex) { case 0 : // 2eme l'icon mâle, femelle ou jeune if("Mâle".equals(unCanari.getSexe())) return iconMale; else if("Femelle".equals(unCanari.getSexe())) return iconFemele; else return iconJeune; case 1 ://1er l'identifiant return unCanari.getIdentifiant(); case 2 : // 3eme colonne c'est le sexe return unCanari.getSexe(); case 3 : // 4eme colonne c'est le pere return unCanari.getIdentifiantPere(); case 4 : // 5eme colonne c'est la mère return unCanari.getIdentifiantMere(); case 5 : // 6eme colonne c'est la couleur return unCanari.getCouleur(); case 6 : //7eme colonne c'est l'origine return unCanari.getOrigine(); case 7 : // 8eme colonne c'est la disponibilté return unCanari.getDisponible(); default : return null; } } public Canari get(int rowIndex){ return (Canari) annee.getAnnee().get(rowIndex); } /** * Renvoie le titre de la colonne * @see javax.swing.table.TableModel#getColumnName(int) */ public String getColumnName(int columnIndex) { switch (columnIndex) { case 0 : return " "; case 1 : return "Identifiant"; case 2 : return "Sexe"; case 3 : return "Père"; case 4 : return "Mère"; case 5 : return "Couleur"; case 6 : return "Origine"; case 7 : return "Disponible"; default : return null; } } /** * Determine si la cellule a la position "row" et "col" et editable ou non. * * @param row La ligne en question * @param col La colonne en question * @return True si la cellule est editable, false sinon. */ public boolean isCellEditable(int row, int col) { return false; } /** * Méthode pour l'ajout d'un canari. * @param canari */ public void add(Canari canari) { Canari can =annee.getCanari(canari.getIdentifiant()); if(can!=null){ //construction du message StringBuffer mess = new StringBuffer("Le canari "); mess.append(canari.getIdentifiant()+" existe déjà").append("\n\t Voulez-vous le remplacer ?"); //création du JOptionPane int choix=JOptionPane.showConfirmDialog(MaFrame.getMaFrame(),mess,"Ajouter un canari",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE); if(choix==JOptionPane.YES_OPTION){ try{ can.setIdentifiant(canari.getIdentifiant()); can.setSexe(canari.getSexe()); can.setIdentifiantPere(canari.getIdentifiantPere()); can.setIdentifiantMere(canari.getIdentifiantMere()); can.setCouleur(canari.getCouleur()); can.setOrigine(canari.getOrigine()); can.setDisponible(canari.getDisponible()); } catch(Exception except){ System.out.println("Exception!!!");} fireTableDataChanged(); } } else{ annee.getAnnee().add(canari); fireTableDataChanged(); } } /** * Méthode pour la suppression d'un canari. * @param canari */ public void remove(Canari canari) { annee.getAnnee().remove(canari); fireTableDataChanged(); } /** * @see javax.swing.table.TableModel#getColumnClass(int) */ public Class getColumnClass(int columnIndex) { switch (columnIndex) { case 0 : // premier colonne c'est l'icon return ImageIcon.class; default : return String.class; } } /** * @see javax.swing.table.AbstractTableModel#fireTableDataChanged() */ public void fireTableDataChanged() { //qui dit changement dans les données dit sauvegarde annee.ecrire(); super.fireTableDataChanged(); } public Annee getAnnee(){ return annee; } }
Merci,
Je viens d’essayer le bout de code, mais la méthode add ne m’est pas proposer dans l’ajout.
Code : Sélectionner tout - Visualiser dans une fenêtre à part annee.getAnnee().add(canari);
C'est un exemple de mon code... après il te faut l'adapter
A moins que tu aimes les canaris
Merci pour t’on aide,
J’y suis enfin arrivé grâce à exemple et au tutorial sur
l’introduction aux composants Jtable, Jtree et jGraph.
J’en profite pour mettre le tag
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager