Probleme fermeture fenetre
goblix64
Messages postés
6
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour, j'ai un problème avec la fermeture d'une fenêtre actionner par un ActionListener pouvez vous m'aidez
voila le problème viens de dispose() avez vous la solution
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Fenetre2 extends JFrame {
private Interfaceprincipale fen2;
private JPanel pan = new JPanel();
private JLabel label = new JLabel("veillez accepter les condition d'utilisation");
private JButton bouton1 = new JButton("Start");
private JRadioButton jr1 = new JRadioButton("accepter les condition");
private JRadioButton jr2 = new JRadioButton("refuser les condition");
private ButtonGroup bg = new ButtonGroup();
private JButton bout5 = new JButton("confirmer");
private JTextArea textPane = new JTextArea();
private JScrollPane scroll = new JScrollPane(textPane);
public Fenetre2(){
pan.setLayout(new BorderLayout());
this.setTitle("deuxième fenetre");
this.setSize(300,300);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setLocationRelativeTo(null);
pan.setBackground(Color.WHITE);
pan.add(label);
JPanel top = new JPanel();
textPane.setText("bienvenue pour pouvoir utiliser cette application \n vous devez avepter les condition :");
jr1.setSelected(true);
jr1.addActionListener(new StateListener());
jr2.addActionListener(new StateListener());
bout5.addActionListener(new StateListener());
bg.add(jr1);
bg.add(jr2);
top.add(jr1);
top.add(jr2);
top.add(pan);
top.add(scroll);
top.add(textPane);
top.add(bout5, BorderLayout.SOUTH);
this.setContentPane(top);
this.setVisible(true);
}
class StateListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
int compteur = 0;
if( bg.getSelection() == null) {
// rien de selectionné
} else if (bg.getSelection() == jr1) {
// c'est le JRadioButton 1 qui est sélectionné
System.out.print("accepter");
++ compteur ;
} else if (bg.getSelection() == jr2) {
// c'est le JRadioButton 2 qui est sélectionné
System.out.print("non accepter");
}
if (compteur == 1) {
Fenetre2().dispose();
fen2 = new Interfaceprincipale();
}
}
}
}
voila le problème viens de dispose() avez vous la solution
1 réponse
-
Bonjour,
Voici une manière de faire, un peu allégée par rapport à ton code de départ.
import java.awt.*; import javax.swing.*; public class Fenetre2 extends JFrame { private static final long serialVersionUID = 1L; public Fenetre2() { JRadioButton accepterBtn = new JRadioButton("accepter les condition"); JRadioButton refuserBtn = new JRadioButton("refuser les condition"); JButton confirmerBtn = new JButton("confirmer"); confirmerBtn.addActionListener(e -> { if (accepterBtn.isSelected()) { dispose(); } }); ButtonGroup buttonGroup = new ButtonGroup(); buttonGroup.add(accepterBtn); buttonGroup.add(refuserBtn); setTitle("deuxième fenetre"); setLayout(new GridLayout(4, 1)); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setLocationRelativeTo(null); add(new JLabel("Veuillez accepter les condition d'utilisation")); add(accepterBtn); add(refuserBtn); add(confirmerBtn); pack(); setVisible(true); } }