Bonjour,
voici un exemple : une classe Frame1 qui crée une fenêtre contenant un bouton qui appelle une fenêtre d'une classe Frame2, lui contenant un bouton pour quitter et retourner vers la première fenêtre :
import javax.swing.*; import java.awt.*; import java.awt.event.*;
class Frame1 extends JFrame{ private JButton bouton1 = new JButton("appeler frame2"); private Frame2 fenetre2; public Frame1(){ this.setSize(200, 100); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel pan = new JPanel(); pan.add(bouton1); this.getContentPane().add(pan); this.setVisible(true); final Frame1 f = this; // Ajout de l'écouteur sur le bouton1 bouton1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ fenetre2 = new Frame2(f); f.setVisible(false); } }); } }
class Frame2 extends JFrame{ private Frame1 fenetre1; private JButton bouton2 = new JButton("retourner à fenetre1"); public Frame2(Frame1 fenetre){ fenetre1 = fenetre; this.setBounds(300, 300, 200, 100); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel pan = new JPanel(); pan.add(bouton2); this.getContentPane().add(pan); this.setVisible(true); final Frame2 f = this; // Ajout de l'écouteur sur le bouton1 bouton2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ fenetre1.setVisible(true); f.dispose(); } }); } }
public class Fenetre{ public static void main(String[] args){ Frame1 f = new Frame1(); } }
|