Bonjour à tous,
Je possède 6 onglets dont 4 affiche bien leur jtable et bouton correspondants, mais deux autre en l'occurrence auteur et profil sont vides bien qu'ils aient la même structure.
Voici la Ihm qui ajouter les onglets suivit des 2 onglets en questions :
Ihm code :
Auteur code :
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 package ihm; import java.awt.FlowLayout; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTabbedPane; import javax.swing.SwingConstants; import event.Affichage; import event.MonWindowAdapter; import ihm.onglets.Auteur; import ihm.onglets.Client; import ihm.onglets.Commande; import ihm.onglets.Editeur; import ihm.onglets.Livre; import ihm.onglets.Profil; public class Ihm extends JFrame { private static final long serialVersionUID = 1L; private static Menu menu; private static JTabbedPane onglets; private static Livre ongletLivre; private static Auteur ongletAuteur; private static Client ongletClient; private static Commande ongletCommande; private static Editeur ongletEditeur; private static Profil ongletProfil; private JPanel panZoneClient; private JPanel panHeader; //============================================================ //constructeur private Ihm() { initIhm(); } //initialisation de toute l'application private void initIhm() { //evenement de la fenêtre this.addWindowListener(new MonWindowAdapter(this)); //ajout des onglets onglets = new JTabbedPane(SwingConstants.NORTH); ongletAuteur = new Auteur(this); ongletClient = new Client(this); ongletCommande = new Commande(this); ongletEditeur = new Editeur(this); ongletLivre = new Livre(this); ongletProfil = new Profil(this); onglets.addTab(Affichage.getRessource().getString("titreongletauteur"),ongletAuteur); onglets.addTab(Affichage.getRessource().getString("titreongletclient"),ongletClient); onglets.addTab(Affichage.getRessource().getString("titreongletcommande"),ongletCommande); onglets.addTab(Affichage.getRessource().getString("titreongletediteur"),ongletEditeur); onglets.addTab(Affichage.getRessource().getString("titreongletlivre"),ongletLivre); onglets.addTab(Affichage.getRessource().getString("titreongletprofil"),ongletProfil); onglets.setOpaque(true); onglets.setSelectedIndex(0); panHeader = new JPanel(); panHeader.setLayout(new FlowLayout()); //zone client panZoneClient = (JPanel) this.getContentPane(); panZoneClient.setLayout(new FlowLayout()); panZoneClient.add(Ihm.onglets); //ajout du menu Ihm.menu = new Menu(this); this.setJMenuBar(Ihm.menu); //Changer la langue event.Affichage.getChangerValeurMenu(Ihm.menu); } //============================================================ //instenciation private static Ihm ihm; public static Ihm getInstance() { if (ihm == null) { ihm = new Ihm(); } return ihm; } //============================================================ //Getter and setter public static Livre getOngletLivre() { return ongletLivre; } public static Auteur getOngletAuteur() { return ongletAuteur; } public static Client getOngletClient() { return ongletClient; } public static Commande getOngletCommande() { return ongletCommande; } public static Editeur getOngletEditeur() { return ongletEditeur; } public static Profil getOngletProfil() { return ongletProfil; } public static JTabbedPane getOnglets() { return onglets; } public static Menu getMenu() { return menu; } }
Profil code :
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
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209 package ihm.onglets; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Vector; import javax.swing.BorderFactory; import javax.swing.BoxLayout; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.border.BevelBorder; import event.Affichage; import event.MonEcouteur; import event.itemCRUD.AbstractOnglet; import ihm.Ihm; import metier.JTableModel; import metier.Requete; public class Auteur extends AbstractOnglet { private static final long serialVersionUID = 1L; //BODY private JPanel panBody; private JTableModel tableModel; private JTable jtable; private JScrollPane ascenseur; //FOOTER private JPanel panFooter; private JButton btnValider; private JButton btnAnnuler; private JButton btnReinitialiser; private ButtonGroup grpGroupe; //================================================== public Auteur(Ihm ihm) { initControls(ihm); preparerOngletAuteur(ihm); } /** * préparation de l'onglet Auteur */ private void preparerOngletAuteur(Ihm ihm) { this.setSize(600,0); //titre de l'onglet this.setBorder(BorderFactory.createTitledBorder(Affichage.getRessource().getString("titreongletauteursup"))); this.setBackground(Color.LIGHT_GRAY); } private void initControls(Ihm ihm) { //BODY panBody = new JPanel(); panBody.setLayout(new FlowLayout()); //JTable jtable = new JTable(); tableModel = this.createTableModel(); jtable.setModel(tableModel); jtable.setPreferredSize(new Dimension(570, 150)); jtable.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED)); jtable.getSelectionModel().addListSelectionListener(e-> changeTableSelection()); //ascenseur ascenseur = new JScrollPane(); ascenseur.setPreferredSize(new Dimension(570, 150)); ascenseur.setViewportView(jtable); panBody.add(ascenseur); //FOOTER panFooter = new JPanel(); panFooter.setLayout(new FlowLayout()); grpGroupe = new ButtonGroup(); btnValider = new JButton(); btnValider.addActionListener(new MonEcouteur(ihm)); grpGroupe.add(btnValider); panFooter.add(btnValider); btnAnnuler = new JButton(); btnAnnuler.addActionListener(new MonEcouteur(ihm)); grpGroupe.add(btnAnnuler); panFooter.add(btnAnnuler); btnReinitialiser = new JButton(); btnReinitialiser.addActionListener(new MonEcouteur(ihm)); grpGroupe.add(btnReinitialiser); panFooter.add(btnReinitialiser); //panneau Client this.setLayout(new BorderLayout()); this.add(panBody, BorderLayout.CENTER); this.add(panFooter, BorderLayout.SOUTH); //redéssiner l'interface Affichage.getChangerValeurAuteur(this); } //================================================== //méthode de l'onglet auteur /** * méthode pour ajouter un élément * @return */ public ActionListener getAjoutItem() { return event -> ajouterAuteur(); } /** * méthode pour supprimer un élément * @return */ public ActionListener getSupprimeItem() { return event -> supprimerAuteur(); } /** * ajouter un auteur à la base de donnée livrokaz */ public void ajouterAuteur() { // ici le code pour ajouter un auteur Vector vecteur = new Vector(); vecteur.addElement(getAjoutItem()); System.out.println("J'ajoute un auteur"); tableModel.setEnregistrements(vecteur); event.MonEcouteur.ajouterAuteur_click(); } /** * suuprimer un auteur de la base de donnée livrokaz */ public void supprimerAuteur() { // ici le code pour supprimer un auteur System.out.println("Je supprime un auteur"); Vector vecteur = new Vector(); vecteur.addElement(getSupprimeItem()); int min = jtable.getSelectionModel().getMinSelectionIndex(); int max = jtable.getSelectionModel().getMaxSelectionIndex(); for (int i=max; i>=min; i--) { tableModel.removeRow(i); } event.MonEcouteur.supprimerAuteur_click(); } //================================================== //getter and setter public JButton getBtnValider() { return btnValider; } public void setBtnValider(JButton btnValider) { this.btnValider = btnValider; } public JButton getBtnAnnuler() { return btnAnnuler; } public void setBtnAnnuler(JButton btnAnnuler) { this.btnAnnuler = btnAnnuler; } public JButton getBtnReinitialiser() { return btnReinitialiser; } public void setBtnReinitialiser(JButton btnReinitialiser) { this.btnReinitialiser = btnReinitialiser; } public JTable getJtable() { return jtable; } public JTableModel getTableModel() { return createTableModel(); } public void setTableModel(JTableModel tableModel) { this.tableModel = tableModel; this.tableModel.fireTableStructureChanged(); this.tableModel.fireTableDataChanged(); } @Override protected JTableModel createTableModel() { ArrayList<Vector<String>> vecteurs = new ArrayList<Vector<String>>(); Vector<String> vecteurColumnName = new Vector<String>(); JTableModel monTableModel; vecteurs = Requete.resultVectorAuteur(); vecteurColumnName.addElement(Affichage.getRessource().getString("id")); vecteurColumnName.addElement(Affichage.getRessource().getString("nom")); vecteurColumnName.addElement(Affichage.getRessource().getString("prenom")); monTableModel = new JTableModel(vecteurs); monTableModel.setColumnName(vecteurColumnName); return monTableModel; } }
Merci pour vos éclaircissements
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
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207 package ihm.onglets; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Vector; import javax.swing.BorderFactory; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.border.BevelBorder; import event.Affichage; import event.MonEcouteur; import event.itemCRUD.AbstractOnglet; import ihm.Ihm; import metier.JTableModel; import metier.Requete; public class Profil extends AbstractOnglet { private static final long serialVersionUID = 1L; //BODY private JPanel panBody; private JTableModel tableModel; private JTable jtable; private JScrollPane ascenseur; //FOOTER private JPanel panFooter; private JButton btnValider; private JButton btnAnnuler; private JButton btnReinitialiser; private ButtonGroup grpGroupe; //================================================== public Profil(Ihm ihm) { initControls(ihm); preparerOngletProfil(ihm); } /** * préparation de l'onglet Profil */ private void preparerOngletProfil(Ihm ihm) { this.setSize(600,0); //titre de l'onglet this.setBorder(BorderFactory.createTitledBorder(Affichage.getRessource().getString("titreongletprofilsup"))); this.setBackground(Color.LIGHT_GRAY); } private void initControls(Ihm ihm) { //BODY panBody = new JPanel(); panBody.setLayout(new FlowLayout()); //JTable jtable = new JTable(); tableModel = this.createTableModel(); jtable.setModel(tableModel); jtable.setPreferredSize(new Dimension(570, 150)); jtable.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED)); jtable.getSelectionModel().addListSelectionListener(e-> changeTableSelection()); //ascenseur ascenseur = new JScrollPane(); ascenseur.setPreferredSize(new Dimension(570, 150)); ascenseur.setViewportView(jtable); panBody.add(ascenseur); //FOOTER panFooter = new JPanel(); panFooter.setLayout(new FlowLayout()); grpGroupe = new ButtonGroup(); btnValider = new JButton(); btnValider.addActionListener(new MonEcouteur(ihm)); grpGroupe.add(btnValider); panFooter.add(btnValider); btnAnnuler = new JButton(); btnAnnuler.addActionListener(new MonEcouteur(ihm)); grpGroupe.add(btnAnnuler); panFooter.add(btnAnnuler); btnReinitialiser = new JButton(); btnReinitialiser.addActionListener(new MonEcouteur(ihm)); grpGroupe.add(btnReinitialiser); panFooter.add(btnReinitialiser); //panneau Client this.setLayout(new BorderLayout()); this.add(panBody, BorderLayout.CENTER); this.add(panFooter, BorderLayout.SOUTH); //redéssiner l'interface Affichage.getChangerValeurProfil(this); } //================================================== //méthode de l'onglet profil /** * méthode pour ajouter un élément * @return */ public ActionListener getAjoutItem() { return event -> ajouterProfil(); } /** * méthode pour supprimer un élément * @return */ public ActionListener getSupprimeItem() { return event -> supprimerProfil(); } /** * ajouter un profil à la base de donnée livrokaz */ public void ajouterProfil() { // ici le code pour ajouter un profil Vector vecteur = new Vector(); vecteur.addElement(getAjoutItem()); System.out.println("J'ajoute un profil"); tableModel.setEnregistrements(vecteur); event.MonEcouteur.ajouterProfil_click(); } /** * suuprimer un profil de la base de donnée livrokaz */ public void supprimerProfil() { // ici le code pour supprimer un profil Vector vecteur = new Vector(); vecteur.addElement(getSupprimeItem()); System.out.println("Je supprime un profil"); int min = jtable.getSelectionModel().getMinSelectionIndex(); int max = jtable.getSelectionModel().getMaxSelectionIndex(); for (int i=max; i>=min; i--) { tableModel.removeRow(i); } event.MonEcouteur.supprimerProfil_click(); } //================================================== //getter and setter public JButton getBtnValider() { return btnValider; } public void setBtnValider(JButton btnValider) { this.btnValider = btnValider; } public JButton getBtnAnnuler() { return btnAnnuler; } public void setBtnAnnuler(JButton btnAnnuler) { this.btnAnnuler = btnAnnuler; } public JButton getBtnReinitialiser() { return btnReinitialiser; } public void setBtnReinitialiser(JButton btnReinitialiser) { this.btnReinitialiser = btnReinitialiser; } public JTable getJtable() { return jtable; } public JTableModel getTableModel() { return createTableModel(); } public void setTableModel(JTableModel tableModel) { this.tableModel = tableModel; this.tableModel.fireTableStructureChanged(); this.tableModel.fireTableDataChanged(); } @Override protected JTableModel createTableModel() { ArrayList<Vector<String>> vecteurs = new ArrayList<Vector<String>>(); Vector<String> vecteurColumnName = new Vector<String>(); JTableModel monTableModel; vecteurs = Requete.resultVectorProfil(); vecteurColumnName.addElement(Affichage.getRessource().getString("id")); vecteurColumnName.addElement(Affichage.getRessource().getString("libelle")); monTableModel = new JTableModel(vecteurs); monTableModel.setColumnName(vecteurColumnName); return monTableModel; } }![]()
Partager