Probleme fermeture fenetre

Fermé
goblix64 Messages postés 6 Date d'inscription jeudi 25 avril 2019 Statut Membre Dernière intervention 15 juin 2019 - Modifié le 15 juin 2019 à 15:31
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 15 juin 2019 à 21:59
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
A voir également:

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
15 juin 2019 à 21:59
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