Classique : apparition de plusieurs fenêtres automatiquement
Salut tous le monde ;)
dans ma Jframe j'ai deux panels :
---> panel_1 (contient un boutton ok) pour la Saisie (saisir 3 données)
---> panel_2 pour l'affichage du resultat sous forme de tabeau
en bas de ma JFrame j'ai mis un boutton Ajouter (pour ajouter une nouvelle ligne à la liste qui s'affiche dans panel_2 .
pour mieux expliquer voici un cas d'utilisation :
1. saisie de 3données (par exemple x,y,z)
2. clique sur Ok
3.affichage d'une table en fonction des 3données
4.clique sur ajouter
5.apparition de la fenetre (NewEtudiant) pour ajouter une nouvelle ligne
6 clique sur ajouter
7.apparition de la fenetre (NewEtudiant) pour ajouter une nouvelle ligne
8.cliquer sur ok (on garde les mêmes données x,y,z)
9.affichage d'une table en fonction des 3données
10.cliquer sur ajouter
11.apparition de deux fenetres (NewEtudiant)
normalement il doit avoir une seule fenetre newEtudiant
et le probleme ne se pose que lorsque je clique sur OK
je precise que le chargement de la table est associé au boutton ok ,car c'est à cet instant que je recupere les 3 données x,y et z .
dans le constructeur j'ai mis
Code:
1 2 3 4 5
|
btnOk = new JButton("ok");
btnOk.addActionListener(new ButtonListener());
btnOk.setBounds(559, 7, 53, 23);
panelSaisie.add(btnOk); |
et comme classe interne j'ai mis
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
|
class ButtonListener implements ActionListener {
ButtonListener() {
}
public void actionPerformed(ActionEvent e) {
System.out.println("okClick :" + oKclick +"times ");
oKclick ++;
contentPane.remove(panelDisplay);
btnAjouter.setEnabled(true);
panelDisplay = new JPanel();
panelDisplay.setBorder(new EtchedBorder(EtchedBorder.LOWERED, new Color(50, 205, 50), null));
panelDisplay.setBounds(10, 64, 643, 175);
contentPane.add(panelDisplay);
panelDisplay.setLayout(null);
String filSel = comboFiliere.getSelectedItem().toString();
String levSel = comboLevel.getSelectedItem().toString();
String yearSel = yearChooser.getYear()+"";
TableModelEtudiantFly modelEtudiant = new TableModelEtudiantFly(filSel,levSel,yearSel);
JTable tableGE = new JTable(modelEtudiant);
tableGE.setAutoCreateRowSorter(true);
JScrollPane scrollPaneGE = new JScrollPane(tableGE);
scrollPaneGE.setBounds(18, 11,550, 125);
panelDisplay.add(scrollPaneGE);
btnSupprimer.setEnabled(true);
tableGE.addMouseListener(new Mouselistner(tableGE,modelEtudiant));
btnAjouter.addActionListener(new ButtonAddListner(modelEtudiant));
}
} |
et voici la classe interne associé au boutton ajouter
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
class ButtonAddListner implements ActionListener {
TableModelEtudiantFly modeleEtudiant;
ButtonAddListner(TableModelEtudiantFly modeleEtudiant) {
this.modeleEtudiant =modeleEtudiant;
}
public void actionPerformed(ActionEvent e) {
System.out.println("addClick :" + addClick +"times ");
addClick++;
new NewEtudiant(modeleEtudiant).setVisible(true) ;
}
} |
je pense que le probleme provient de actionListener associé au boutton ok ,mais franchement je ne sais pas une autre facon de faire les choses :(
votre aide s'il vous plait : )