amirkel
Messages postés4Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention12 septembre 2009
-
10 sept. 2009 à 18:31
amirkel
Messages postés4Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention12 septembre 2009
-
12 sept. 2009 à 11:42
bonjour, j'ai 3 classes Trace et Trace2 et fermeagri dont voici le code :
Code :
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 :
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 :
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 classe
Citation:
le 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.
Mon ActionPerformed est appelé depuis la classe Fermeagri.
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.
amirkel
Messages postés4Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention12 septembre 2009 12 sept. 2009 à 11:42
merci bcp pour ton aide uhrand
exact le probléme était que j'appelais mon actionperformed deux fois
j'ai superposé dans les constructeurs des 2 classes 2 bouttons ok sans faire attention d'ou l'appel en double de l'action performed lol !
le probléme est réglé !
bonne journée.