J'ai une fenêtre principale JFrame avec un JButton. Quand je clique sur le bouton une nouvelle fenêtre est ouverte, mais quand je veux fermer la deuxième fenêtre, les deux fenêtres sont fermées! Je veux que le premier s'ouvre tout le temps. Est-il possible de fermer uniquement la deuxième fenêtre? Prévoyez de l'aide! Merci!Les deux fenêtres se ferment?
EDIT: J'ai ajouté un nouveau code pour montrer mon problème. Classe GUI1 a un cadre principal et un bouton pour ouvrir une deuxième image, GUI2, qui a un bouton pour fermer la trame GUI2. C'est la partie finale de GUI2 que je ne peux pas résoudre. Le code est simple et juste pour tester.
GUI1
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI1 extends JFrame implements ActionListener{
JButton btn1;
Container contentPane;
public GUI1()
{
setTitle("GUI 1");
setResizable(false);
setSize(600,300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
btn1 = new JButton("Open GUI 2 frame");
contentPane.add(btn1);
btn1.setFocusable(false);
btn1.addActionListener(this);
}
public void actionPerformed(ActionEvent event){
if(event.getSource() == btn1)
{
GUI2 frame2 = new GUI2();
frame2.setVisible(true);
}
}
public static void main(String[] args) {
GUI1 frame = new GUI1();
frame.setVisible(true);
}
}
GUI2
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI2 extends JFrame implements ActionListener {
Container contentPane;
JButton btn2;
public GUI2()
{
setTitle("GUI 2");
setResizable(false);
setSize(400,200);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
btn2 = new JButton("Close GUI 2 frame");
contentPane.add(btn2);
btn2.addActionListener(this);
}
public void actionPerformed(ActionEvent event){
if(event.getSource() == btn2)
{
// Close GUI2 ??
}
}
}
vous devriez probablement utiliser la constante au lieu de '3' pour l'opération de fermeture par défaut, pour le rendre plus clair. est 3 sortie à proximité? – DHall
Voir [L'utilisation de plusieurs JFrames, bonne/mauvaise pratique?] (Http://stackoverflow.com/a/9554657/418556) Il est 'JFrame.DISPOSE_ON_CLOSE', mais ** voir [L'utilisation de plusieurs JFrames, Bon/Mauvais Pratique?] (Http://stackoverflow.com/a/9554657/418556) ** –
Oh, et n'utilise pas de 'nombres magiques' - je dois admettre que je n'ai pas eu besoin de jeter un coup d'œil à l'extrait avant de deviner le problème. –