Probleme fermeture fenetre

goblix64 Messages postés 6 Statut Membre -  
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

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

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    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);
        }
    } 
    0