bonjour, j'ai 3 classes Trace et Trace2 et fermeagri dont voici le 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 public class Trace extends JFrame implements ActionListener { private static final long serialVersionUID = 1L; JPanel paneltrace; GridLayout gdl = new GridLayout(500,500); public Trace () { paneltrace = new JPanel(); getContentPane(); setLayout( null ); setContentPane(new Graphe1()); setVisible(true); System.out.println("Trace ok"); } public class Graphe1 extends JPanel { public Graphe1() { System.out.println("graphe 1 debut ok"); getContentPane(); setLayout(null); } public void paintComponent(Graphics g) { g.drawRect(90, 340, 90, 100); g.setColor(Color.blue); g.fillRect(100, 490, 70, 70); g.setColor(Color.red); g.fillRect(100, 610, 70, 70); System.out.println("graphe 1 fin ok"); } } }
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 public class Trace2 extends JFrame { protected int lon, lar; protected String nomclient; protected String tpr; public Trace2 () { System.out.println("ecriture trace 2 ok 1"); getContentPane(); setBackground(Color.WHITE); setContentPane(new Graphe2()); System.out.println("ecriture trace 2 ok 2"); try { System.out.println("ecriture trace 2 ok 3"); if (Main.connect == null) { ... System.out.println("ecriture 8tbis ok"); ... System.out.println("lon"+lon+"lar"+lar+" pour trace 2"); ... System.out.println("Dessinferme ok trace 2"); } catch (Exception e) { e.printStackTrace(); } System.out.println("Trace2 ok"); //new Graphe2(); } public class Graphe2 extends JPanel { ... public Graphe2() { getContentPane(); setLayout(null); System.out.println("public Graphe2 ok"); } public void paintComponent(Graphics g) { try { System.out.println("ecriture 7t ok"); if (Main.connect == null) { ... } }
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 public class Fermeagri extends JPanel implements ActionListener { JPanel panelferme; ... public Fermeagri() { panelferme = new JPanel(); ... try { ... } ... public void actionPerformed(ActionEvent arg0) { if(arg0.getSource() == OK) { try { .... } System.out.println("fermeagri "); } System.out.println("AAAAAAAAAAAAAAAAAAAAAAA"); Inscription.tabbedPane.setVisible(false); new Trace(); new Trace2(); System.out.println("BBBBBBBBBBBBBBBBBBBBBBBB"); catch (Exception e) { e.printStackTrace(); } }// fin de classele compilateur suit le chemin suivant :
AAAAAAAAAAAAAAAAAAAAAAA
graphe 1 debut ok
Trace ok
ecriture trace 2 ok 1
public Graphe2 ok
ecriture trace 2 ok 2
ecriture trace 2 ok 3
ecriture 8tbis ok
Trace2 ok
BBBBBBBBBBBBBBBBBBBBBBBB
fermeagri
le problème est le suivant : je ne comprends pas pourquoi il retourne dans fermeagri pour l'executer une deuxieme fois alors qu'il ne devrait pas y retourner et aller plutot dans TRACE et TRACE2
pour répondre à ta question nnovic, mon ActionPerformed est appelé depuis la classe Fermeagri.
darrylsite, vous dites qu'elle n'est pas appelée 2 fois mais cela est évident car à partir de ces 3 classes et lors de l'éxécution j'obtiens 4 fenétres au lieu de 2 ! j'obtiens 2 fenétres en double (tracé deux fois et tracé2 deux fois ). j'aimerais éviter cette doublure.
Merci.
Partager