Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Java]Fenetre Swing

    17 novembre 2006 à 22:01:15

    VOila un code, qui devrait afficher une fenetre de grandeur 600 * 500 et qui contiendrait un bouton, mais mon programme ne fonctionne pas. La fenetre s'ouvre, mais elle de grandeur 0 * 0 et il n'y a aucun bouton.

    // The "Documents" class.
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;

    public class Documents
    {
        public static void Fenetre ()
        {
            //cree la fenetre
            JFrame FenetrePrincipal = new JFrame ("Documents");
            FenetrePrincipal.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
            //propriete de la fenetre
            //FenetrePrincipal.setResizable( false );
            FenetrePrincipal.setSize(new Dimension(600, 500));
            //bouton
            JButton FermerProg = new JButton("Fermer le Programme");
            //creation du panel et ajout d'element dans la fenetre
            JPanel Panneau = new JPanel(new GridLayout(0,1));
            Panneau.add(FermerProg);
            //affichage de la fenetre
            FenetrePrincipal.pack ();
            FenetrePrincipal.setVisible (true);
           
           
        }


        public static void main (String[] args)
        {
            Fenetre (); // fenetre principale
           
        } // main method
    } // Documents class


    Merci :p LE java c'est cool, c'est mieu que le VB6 d'apres moi :D
    • Partager sur Facebook
    • Partager sur Twitter
      17 novembre 2006 à 22:37:43

      Essaye de mettre, à la place de

      JPanel Panneau = new JPanel(new GridLayout(0,1));

      de mettre

      JPanel Panneau = (JPanel)FenetrePrincipal.getContentPane();
      panneau.setLayout(new GridLayout(0,1));


      Ca marche?

      Citation : ggg

      Merci :p LE java c'est cool, c'est mieu que le VB6 d'apres moi :D


      Tout à fait d'accord avec toi :D
      • Partager sur Facebook
      • Partager sur Twitter
        17 novembre 2006 à 23:35:00

        vui ou plus simpement .....


        // The "Documents" class.
        import javax.swing.*;
        import java.awt.*;
        import java.awt.event.*;

        public class Documents
        {
            public static void Fenetre ()
            {
                //cree la fenetre
                JFrame FenetrePrincipal = new JFrame ("Documents");
                FenetrePrincipal.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
                //propriete de la fenetre
                //FenetrePrincipal.setResizable( false );
                FenetrePrincipal.setSize(new Dimension(600, 500));
                //bouton
                JButton FermerProg = new JButton("Fermer le Programme");
                //creation du panel et ajout d'element dans la fenetre
                JPanel Panneau = new JPanel(new GridLayout(0,1));
                Panneau.add(FermerProg);


                FenetrePrincipal.add(Panneau);//!\ c'est bien d'ajouter le bouton au panneau que tu viens de créer mais faut aussi ajouter le panneau à la fenêtre


                //affichage de la fenetre

                //FenetrePrincipal.pack ();
                //!\ Pack et setSize se font concurence, soit tu décide de laisser le gestionaire    déterminter la taille de la fenêtre en fonction des composant soit t l'impose mais pas les deux
               
        FenetrePrincipal.setVisible (true);
               
               
            }


            public static void main (String[] args)
            {
                Fenetre (); // fenetre principale
               
            } // main method
        } // Documents class



        alors quelque remarque.

        getContentPane() ne sert plus à rien depuis le java 5 et encore moins quand on utilise un panneau tierce.
        (enfin bon on fait comme on veut)

        Mais par convention les noms de classes commence toujours par une Majuscule et les nom de variables par une minuscule (enfin ca c'est un détails)

        mais surtout ne met jamais setSize et pack en même temps sinon seul le dernier appeler est pris en compte
        • Partager sur Facebook
        • Partager sur Twitter
          19 novembre 2006 à 16:56:17

          Bonjour, j'ai tout simplement enlever le FenetrePrincipal.pack () et sa fonctionne :p
          • Partager sur Facebook
          • Partager sur Twitter

          [Java]Fenetre Swing

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown