CardLayout

mtniang Messages postés 4 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 3 août 2007 - 27 juil. 2007 à 17:59
mtniang Messages postés 4 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 3 août 2007 - 3 août 2007 à 00:28
Bonjour.J’arrive pas à fermer les fenêtres après l’exécution du programme. Mais quand  j’utilise un JFrame avec les méthodes   first(), last(), next() et previous()  qui servent à parcourir les onglets de boîte de dialogue et la méthode show du CardLayout le programme affiche:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>



Exception in thread “main” java.lang.ClassCastException : java.awt.BorderLayout






 at gestiondisposition.MaFrame.(MaFram.java:34)





at gestiondisposition.MaFrame.(MaFram.java:50)




Voici le code :



package gestiondisposition;






 






import java.awt.*;





import javax.swing.*;






 






public class MaFram extends JFrame {






 







            public MaFram() {






           
      super();






           
      setTitle("Titre");






           
      setSize(300,150);






           
  








    








        
setLayout(new CardLayout());



           
      //création d'un panneau contenant les contrôles d'un onglet



           
      Panel p1 = new Panel();



           
     



           
      //ajouter les composants au panel



         
p1.add(new Button("Bouton 1 panneau 1"));






           
      p1.add(new Button("Bouton 2 panneau 1"));






      








           
     
//inclure le panneau dans la fenetre sous le nom "Page1"



           
     



 





           
      add("Page1",p1);



 





           
      //déclaration et insertion de l'onglet suivant



           
     
Panel p2 = new Panel();






           
      p2.add(new Button("Bouton 3 panneau 2"));






           
      add("Page2", p2);






           
      Panel p3 = new Panel();






           
      p3.add(new Button("Bouton 4 panneau 3"));






           
      add("Page3", p3);






      ((CardLayout)getLayout()).show(this, "Page2");






           
     ((CardLayout)getLayout()).first(this);






           
    //  ((CardLayout)getLayout()).next(this);





//                ((CardLayout)getLayout()).previous(this);






           
      ((CardLayout)getLayout()).last(this);






           
      // affiche la fenetre






    // setDefaultCloseOperation(Frame.EXIT_ON_CLOSE);






    








           
      pack();






     








           
      setVisible(true);






           
    








           
   }






 







 







            public static void main(String[] args) {






           
    
new MaFram();



            }


}


 

2 réponses

theguitou Messages postés 75 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 14 janvier 2009 35
27 juil. 2007 à 19:03
Salut, tu devrais mettre un CardLayout sur un JPanel plutot de sur une JFrame. Au passage, c'est pas une bonne idée de mélanger les composants awt et swing. Tu met des Panel et Button dans une JFrame ...

...
<strike>setLayout(new CardLayout());

</strike>JPanel p = new JPanel(new CardLayout());
add(p);
<strike>
</strike> J Panel p1 = new JPanel();
p1.add(new JButton("Bouton 1 panneau 1"));
...

p.add("Page1", p1);
...

((CardLayout)p.getLayout()).show(p, "Page2");
0
mtniang Messages postés 4 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 3 août 2007
3 août 2007 à 00:28
Merci pour la réponse mais les méthodes   first(), last(), next() et previous() ne marchent pas .
0
Rejoignez-nous