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 :ccool: ), 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:
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:
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:
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.