Merci pour ce tuto, il m'a bien aidé =D
J'ai tout de même une question.
J'ai 2 JTable qui sont censées afficher certaines informations enregistrées dans 2 listes différentes.
Mon code fonctionnait pour l'affichage d'une JTable (merci ), mais je me suis retrouvé coincé pour la deuxième.
Je poste une partie simplifiée de mon code source, puis je poserais ma question.
Un première classe qui représente un attribut :
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 public class ClassDiagramClassAttribute { private int idAttribute; private String name; private String type; private String value; private String visibility; ... public ClassDiagramClassAttribute() { } ... Mes getters et setters ... }
Un deuxième classe qui représente une opération :
Une troisième classe qui représente une classe (UML) :
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 public class ClassDiagramClassOperation { private int idOperation; private String name; private String type; private String visibility; ... public ClassDiagramClassOperation() { } ... Mes getters et setters ... }
Voilà.
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 public class ClassDiagramClass extends AbstractTableModel { private int idClass; ... private List<ClassDiagramClassAttribute> attribute = new ArrayList<ClassDiagramClassAttribute>(); private String[] columnNamesAttribute = {"", "Nom", "Type"}; private List<ClassDiagramClassOperation> operation = new ArrayList<ClassDiagramClassOperation>(); private String[] columnNamesOperation = {"Nom", "Type", "Visibilité"}; public ClassDiagramClass() { } ... Mes getters et setters ... public void setAttribute(List<ClassDiagramClassAttribute> attribute) { this.attribute = attribute; } public List<ClassDiagramClassAttribute> getAttribute() { return attribute; } public void setOperation(List<ClassDiagramClassOperation> operation) { this.operation = operation; } public List<ClassDiagramClassOperation> getOperation() { return operation; } public int getRowCount() { //************************* ICI *************************** return getAttribute().size(); return getOperation().size(); } public int getColumnCount() { //************************* ICI *************************** return columnNamesAttribute.length; return columnNamesOperation.length; } public String getColumnName(int columnIndex) { //************************* ICI *************************** return columnNamesAttribute[columnIndex]; return columnNamesOperation[columnIndex]; } public Object getValueAt(int rowIndex, int columnIndex) { //************************* ICI *************************** if (columnIndex == 0) return getAttribute().get(rowIndex).isKey(); else if (columnIndex == 1) return getAttribute().get(rowIndex).getName(); else if (columnIndex == 2) return getAttribute().get(rowIndex).getType(); else return null; //Ne devrait jamais arriver //************************* ICI *************************** if (columnIndex == 0) return getOperation().get(rowIndex).getName(); else if (columnIndex == 1) return getOperation().get(rowIndex).getType(); else if (columnIndex == 2) return getOperation().get(rowIndex).getVisibility(); else return null; //Ne devrait jamais arriver } ... }
Etant encore débutant en Java, je m'excuse d'avance si mon code est mal écrit, et pour mes explications surement boiteuses. ='
Donc mon problème est :
Dans les méthodes getRowCount(), getColumnCount(), getColumnName(int columnIndex) et getValueAt(int rowIndex, int columnIndex), si on retire le/les return de trop, ça marche ( Je peux soit afficher mon JTable d'attributs, soit mon JTable d'opérations )
Mais, j'aimerais afficher les deux. ( d'où les /*** ICI ***/ )
Donc, est-ce-que vous connaissez un moyen afin de réaliser cela ? ( J'espère bêtement un simple if, mais on peut toujours rêver =' )
Si non, avez-vous une idée à me proposer ?
Merci d'avance, et bonne soirée.
PS : Je ne sais pas si ça peut aider, mais les JTable s'affichent dans deux JFrame différentes, qui sont elles mêmes dans un JTabbedPane.
Partager