JAVA : Cacher/Afficher Container

Résolu
Reisors Messages postés 153 Date d'inscription   Statut Membre Dernière intervention   -  
Reisors Messages postés 153 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

ma JFrame se compose de deux container contenant chacun un bouton, l'un est visible au départ, l'autre non, le but et que lorsque je clique sur un bouton visible, le content Pane de celui ci ce cache et fasse apparaitre l'autre et vice versa.
Je n'y arrive pas pourriez vous m'aider ?
Merci d'avance

code :


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class IHMJeu421 extends JFrame {

JButton bouton1;
JButton bouton2;
Container cMenu;
Container cJeux;



public IHMJeu421(String nomFenetre){
super(nomFenetre);
setSize(1000,500);

cMenu = getContentPane();
cJeux = getContentPane();


bouton1 = new JButton( "B1" );
bouton2 = new JButton( "B2" );



boutonAffB1 baB1 = new boutonAffB1();
bouton1.addActionListener(baB1);

BoutonAffB2 baB2 = new BoutonAffB2();
bouton2.addActionListener(baB2);




this.setVisible(true);
this.CreationFenetre();


}

private void CreationFenetre(){





JPanel jpBouton = new JPanel();
jpBouton.setLayout(new GridLayout(1,1));
jpBouton.add(bouton1);


JPanel jpMenu = new JPanel();
jpMenu.setLayout(new BorderLayout());
jpMenu.add(jpBouton,BorderLayout.CENTER);

JPanel jpBouton1 = new JPanel();
jpBouton1.setLayout(new GridLayout(1,1));
jpBouton1.add(bouton2);


JPanel jpJeux = new JPanel();
jpJeux.setLayout(new BorderLayout());
jpJeux.add(jpBouton1,BorderLayout.CENTER);

cJeux.add(jpJeux);
cMenu.add(jpMenu);

cMenu.setVisible(true);
cJeux.setVisible(false);


}

public class BoutonAffB2 implements ActionListener{

public void actionPerformed(ActionEvent e){

cMenu.setVisible(false);
cJeux.setVisible(true);


}
}
public class boutonAffB1 implements ActionListener{

public void actionPerformed(ActionEvent f){

cMenu.setVisible(true);
cJeux.setVisible(false);




}
}

}



A voir également:

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
J'avoue que j'ai pas mal galéré pour y arriver ^^
Voici un code qui fait (à peu près) ce que tu veux, mais il a pas mal changé !

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

class AlternativeButton extends JButton
{
    private static final long serialVersionUID = 1;

    public AlternativeButton(String texte)
    {
        super(texte);        
    }
    
    public void setAlternative(final AlternativePanel toFalse, final AlternativePanel toTrue)
    {
        addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                toFalse.setVisible(false);
                toTrue.setVisible(true);
            }            
        });
    }
}

class AlternativePanel extends JPanel
{
    private static final long serialVersionUID = 1;    
    
    public AlternativePanel(AlternativeButton button, boolean visible)
    {
        super(new BorderLayout());
        add(button,BorderLayout.CENTER);
        setVisible(visible);
    }
}

public class IHMJeu421 extends JFrame 
{
    private static final long serialVersionUID = 1L;
    
    public IHMJeu421()
    {
        setSize(300,300);
        
        AlternativeButton bouton1 = new AlternativeButton("B1");
        AlternativeButton bouton2 = new AlternativeButton("B2");

        AlternativePanel jpMenu = new AlternativePanel(bouton1,true);
        AlternativePanel jpJeux = new AlternativePanel(bouton2,false);
        
        bouton1.setAlternative(jpMenu, jpJeux);
        bouton2.setAlternative(jpJeux, jpMenu);    

        setLayout(new BorderLayout());
        add(jpMenu,BorderLayout.NORTH);
        add(jpJeux,BorderLayout.SOUTH);
        
        setTitle("Jeu 421");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);
    }
    
    public static void main(String...args)
    {
        new IHMJeu421();
    }
}
0
Reisors Messages postés 153 Date d'inscription   Statut Membre Dernière intervention   14
 
Olala tous sa pour faire ce que je veux .... je croyais pas que sa devais etre si compliqué :O
En tout cas merci d'avoir passer du temps sur mon problème
0