Java - Besoin d'aide pour les JPanel

Java - Besoin d'aide pour les JPanel - Java - Programmation

Marsh Posté le 20-09-2012 à 13:48:22    

Bonjour a tous,
Etant nouveau venu je vous remercie d'avance pour l'aide que vous pourrez m'apporter pour mon problème
 
But de l'appli :
Je developpe une petite appli en Java(je precise que c est une grande premiere pour moi). J'avance etape par etape et je bute sur un petit soucis.
J'arrive a faire ouvrir une fenetre avec 2 JButton ( 1 pour entrer ds l appli et l autre pour la quitter).
J ai ajouté des ActionListener pour les boutons entrer et quitter.
Le but du JButton Entrer est de virer le JPanel ( celui qui a les 2 JButton) pour le remplacer par un autre (pour l instant je souhaite mettre un JButton pour quitter l'appli).
J'arrive a changer les JPanel mais le soucis est que je ne sais pas ou il faut definir les JButton pour le nouveau JPanel...
 
Fenetre est une classe extends a JFrame
 
import javax.swing.*;
 
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
public class Fenetre extends JFrame {
 static final int LARGEURFENETRE= 400;
 static final int HAUTEURFENETRE= 400;
 
 private JButton Button = new JButton("Entrer" ); // Definition des 2 JButton
 private JButton Button2 = new JButton("Sortir" );
 
 private JPanel PanelEntrer=new JPanel(); // Definition des 2 JPanel
 private JPanel PanelAccueil=new JPanel();
 public Fenetre(){
 
     this.setTitle("Test" );
     this.setSize(LARGEURFENETRE,HAUTEURFENETRE);
     this.setLocationRelativeTo(null);
     this.setResizable(false);
     GestionQuitter gestionquitter = new GestionQuitter();
     GestionEntrer gestionentrer = new GestionEntrer();
     this.Button.addActionListener(gestionentrer);
     this.Button2.addActionListener(gestionquitter);
 
     PanelEntrer.add(Button);
     PanelEntrer.add(Button2);        
     this.setContentPane(PanelEntrer);
     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     this.setVisible(true);
     
 }
 class GestionEntrer implements ActionListener {  
     public void actionPerformed(ActionEvent contexte) {  
       
getContentPane().removeAll();
GestionQuitter gestionquitter = new GestionQuitter();
Button2.addActionListener(gestionquitter);
getContentPane().add(PanelAccueil);
 
PanelAccueil.add(Button2); // Pourquoi le fait de faire add du Button 2 sur le PanelAccueil ne fait pas afficher le Button sur le Panel quand je fais repaint?  
 
getContentPane().repaint();
     
 }
     class GestionQuitter implements ActionListener {  
         public void actionPerformed(ActionEvent contexte) {  
             System.exit(0);  
         }  
     }  
 }
}
 
Et voici mon main
 
public static void main(String[] args) {
 
    Fenetre fenetre=new Fenetre();
 
}
 
 
 
Merci pour votre aide a tous et bonne journée.
 
n1c0o0l4s

Reply

Marsh Posté le 20-09-2012 à 13:48:22   

Reply

Marsh Posté le 20-09-2012 à 16:48:42    

En fait je viens de voir que le PanelAccueil n'est jamais "chargé",si j enleve
getContentPane().add(PanelAccueil);  
Je me retrouve au meme point...
Je pense que j affiche et enleve bien le PanelEntrer mais rien du tout pour PanelAccueil...
 
Je continue d essayer d avancer dessus en esperant obtenir de l'aide.
Bonne fin de journée a tous et toutes.

Reply

Marsh Posté le 30-09-2012 à 17:47:08    

Pourquoi ne pas faire 2 JPanel ? Un JPanel bouton et un principal.
 
Un pour les bouton, et l'autre pour le reste. Je fais toujours comme ça et jamais aucun problème ! Comme ça tu peux clean que le JPanel principal.


---------------
"Coucou petit perruche, c'est moi l'élan derrière toi !"
Reply

Marsh Posté le 30-09-2012 à 18:19:42    

+1 pour reelooz10
si tu veux vraiment modifier le panel courant, essaye d'appeler validate() plutot que repaint()

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed