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
et comme classe interne j'ai mis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 btnOk = new JButton("ok"); btnOk.addActionListener(new ButtonListener()); btnOk.setBounds(559, 7, 53, 23); panelSaisie.add(btnOk);
et voici la classe interne associé au boutton ajouter
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 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)); } }
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 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 : )
Partager