IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Agents de placement/Fenêtres Java Discussion :

Interchanger 2 panneaux


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Par défaut Interchanger 2 panneaux
    Bonjour ou bonsoir !

    Le problème est assez simple mais cela fait quelques jours que je bloque dessus.
    Pour faire court, on dispose d'une fenetre (JFrame)
    Dessus, on ajoute un panneau : panneau1 et des éléments comme des boutons.
    On crée un événement sur un bouton qui va remplacer le panneau1 par un panneau2.

    Le problème est que le panneau1 s'affiche correctement, mais lorsque je clique tout disparaît et il ne reste plus que l'image de fond :S. Le panneau2 ne s'affiche pas.

    Voici un extrait du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    // import ...
     
    public class menu
    {
    	public static void main(String []args)
    	{
    		cadre fenetre = new cadre("Astéroïdes",150,150,1365,718);
    	}
    }
     
    class cadre extends JFrame
    {
    	public cadre(String nom,int X,int Y,int H,int L)
    		super(nom);
    		setBounds(X,Y,H,L);
    		setDefaultCloseOperation(EXIT_ON_CLOSE); 
    		getContentPane().add(new Panneau1());
    		setVisible(true);
    		setResizable(false);
    	}
    }
     
     
    class Panneau1 extends JPanel
    {
    	private JButton jouer = new JButton("Jouer");
     
            public Panneau1()
            {
                     add(jouer);
                     jouer.addActionListener(new Ecouteur1());
            }
     
            class Ecouteur1 implements ActionListener
    	{
    		public void actionPerformed(ActionEvent evt)
    		{	
    			jouerClick();
    		}
    	}
     
    	public void jouerClick()
    	{
    		this.removeAll();
    		this.add(new Panneau2());
    		this.invalidate();
    		this.validate();
    		this.repaint();
    	}
     
            public void paintComponent(Graphics g)
    	{
    		Image FondEcran = getToolkit().getImage("image.jpg");
    		g.drawImage(FondEcran,0,0,1365,718,this);
    	}
    }
     
    class Panneau2 extends JPanel
    {
           // Ici, c'est un panneau complètement différent (Image et composants différents)
    }

    Pour conclure, comment supprimer l'image du Panneau1 quand on affiche le Panneau2, et pourquoi il m'est impossible d'afficher le Panneau2 ?

    Merci d'avance !!

  2. #2
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Regarde du coté du CardLayout

  3. #3
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    il faut passer une référence de ta fenêtre à ton objet panneau1,par la suite supprimer l'instance panneau1 de la fenétre et la remplacer par le panneau2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void jouerClick()
        {
            objet_fenetre.remove(instance_panneau1);// ou bien this
            objet_fenetre.add(new Panneau2());
            objet_fenetre.validate();
             //...
        }

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Par défaut
    Merci pour ces réponses !!

    Je pense que le cardLayout est plus adapté à ce problème. Je ne connaissais pas cette méthode !


    Merci

Discussions similaires

  1. Interchanger un JPanel avec un autre
    Par jfz dans le forum Agents de placement/Fenêtres
    Réponses: 10
    Dernier message: 09/01/2010, 20h38
  2. [JPanel] Jeux de panneaux
    Par sozie9372 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 10/04/2006, 16h58
  3. [SWING] Multi-panneaux
    Par rprom1 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 19/03/2006, 22h23
  4. [des panneaux dans une page web] que choisir ?
    Par oursblanc dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 02/12/2005, 11h02
  5. Agrandir auto les tailles de panneaux et contenus
    Par MathiasM dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 06/08/2004, 13h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo