Salut à tous,

Voilà j'essaie de faire un programme java qui 'saute' d'une frame à l'autre, mais sur chaque nouvelle frame ouverte je crée un bouton retour pour revenir sur une frame antérieure.
Je pensais réussir tout ca facilement, mais mon petit problème débarque lorsque je le teste, bon les boutons et l'ouverture des frames se fonctionne parfaitement, mais cela seulement une seule fois. Je m'explique, une fois le programme lançait de ma première frame je clique sur le bouton qui m'envoie vers la seconde (en l'ouvrant et en 'disposant' de la première frame). Une fois sur la seconde je clique sur mon retour (idem ouverture de la première frame et dispose de la seconde). Jusque la tout fonctionne parfaitement. Mais si je réitère directement la même manœuvre voila t y pas qu'en plus de réaliser tout ca une fenetre suplementaire est créée... POURQUOI donc ? mais aussi comment régler ca ?

Si quelqu'un peu aider un pauvre bougre qui ne sait plus quoi faire pour régler cette incompréhension..

J'utilise eclipse et voila une partie du code :

Première frame :

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
public class essai extends JFrame{
	JFrame contour = new JFrame();
	static JPanel container = new JPanel();
 
	JButton base = new JButton("Edition");
 
	public essai(){
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Toolkit outil = getToolkit();
		contour.setSize(outil.getScreenSize()); 
		container.add(base);
		base.addActionListener(new ecouteurBase());
 
		contour.getContentPane().add(container, BorderLayout.CENTER);
		contour.setVisible(true);
	}
	class ecouteurBase implements ActionListener{
		public void actionPerformed (ActionEvent arg0){
			container.removeAll();
			contour.dispose();
			new fenetreMenu();
 
		}
	}
}
Deuxième frame :

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
public class fenetreMenu extends JFrame{
	JFrame contour = new JFrame();
	static JPanel container = new JPanel();
	static JPanel container2 = new JPanel();
	JSplitPane split = new JSplitPane();
 
	public fenetreMenu(){
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Toolkit outil = getToolkit();
		contour.setSize(outil.getScreenSize()); 
 
		new fenetreMenu3();
		fenetreMenu3.base.addActionListener(new ecouteurBase());
 
        new fenetreMenu2();
 
        split = new JSplitPane(JSplitPane.VERTICAL_SPLIT, container, container2);
        split.setDividerLocation(650);
		contour.getContentPane().add(split, BorderLayout.CENTER);
		contour.setVisible(true);
	}
	class ecouteurBase implements ActionListener{
		public void actionPerformed (ActionEvent arg0){
			container2.removeAll();
			essai.container.removeAll();
			contour.dispose();
			new essai();
 
 
			container.setBackground(Color.GREEN);		
		}
	}
}