Partage
  • Partager sur Facebook
  • Partager sur Twitter

Java débutant

Code ne fonctionne pas,message erreur

    26 novembre 2014 à 11:13:15

    Bonjour,

    J'ai eu un probleme avec l'autre compte donc j'ai du en creer celui ci.

    Voila je suis debutant en JAVA, je suis a la 3e partie chapitre 1 intitulée "notre premiere fenetre".

    ca, ca fonctionne,voici le code

    import javax.swing.JFrame;
     
    public class Test {
      public static void main(String[] args){
    
        JFrame fenetre = new JFrame();
                    
        //Définit un titre pour notre fenêtre
        fenetre.setTitle("Ma première fenêtre Java");
        //Définit sa taille : 400 pixels de large et 100 pixels de haut
        fenetre.setSize(400, 100);
        //Nous demandons maintenant à notre objet de se positionner au centre
        fenetre.setLocationRelativeTo(null);
        //Termine le processus lorsqu'on clique sur la croix rouge
        fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //Et enfin, la rendre visible        
        fenetre.setVisible(true);
      }       
    }

    MAINTENANT, j'arrive pas à saisir ce passage,

    Parttie 3, chapitre 1 "Pour commencer, effaçons tout le code que nous avons écrit dans notre méthode main. Créons ensuite une classe que nous allons appeler Fenetre et faisons-la hériter de JFrame. Nous allons maintenant créer notre constructeur, dans lequel nous placerons nos instructions."

    import javax.swing.JFrame;
     
    public class Fenetre extends JFrame {
      public Fenetre(){
        this.setTitle("Ma première fenêtre Java");
        this.setSize(400, 500);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);             
        this.setVisible(true);
      }
    }

    Je comprends l'idée que le "this" nous évite de tout réécrire a chaque fois, mais moi ça marche pas! Alors je suis bloqué pour le reste du cours.

    Quelqu'un peut jeter un œil et me dire ce qui ne va pas svp, est ce que j'ai mal placé mon code ou bien? Car je vois pas ou est mon erreur!  voici en photo ce que j'ai fait.

    • Partager sur Facebook
    • Partager sur Twitter
      26 novembre 2014 à 11:25:03

      Voici les photos depuis mon eclipse! Est ce que j'ai mal crée les classes? Qu' est ce qui me manque pour que le résultat s'affiche, car avant il s'affichait mais des que j'ai remplacé par "this" et effacé le contenu dans main, ca marche plus et je vois pas ou j'ai faux!

      par avance merci beaucoup! 

      • Partager sur Facebook
      • Partager sur Twitter
        26 novembre 2014 à 12:15:16

        Tu as une croix rouge sur ta classe fenêtre.Vérifie.Ou postes là.

        Dans ton main,tu crées une instance(un objet) de ta classe fenêtre.Ton this indique que ce sont tes champs/attributs de ta classe originaux que tu initialises.Ici pas de paramètres dans ton constructeur,donc pas de danger de confondre.

        -
        Edité par footsteps 26 novembre 2014 à 12:20:04

        • Partager sur Facebook
        • Partager sur Twitter
          26 novembre 2014 à 13:57:48

          Voici le code de la "fenetre" 
          import javax.swing.JFrame;
           
          public class Fenetre extends JFrame {
            public Fenetre(){
              this.setTitle("Ma première fenêtre Java");
              this.setSize(400, 500);
              this.setLocationRelativeTo(null);
              this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);             
              this.setVisible(true);
            }
          }
          

          et celui du programme main intitulé "tests"

          import javax.swing.JFrame;
           
          public class Tests {
            public static void main(String[] args){
          
             /* effacement du code dans la methode main*/ }       
            Fenetre fen = new Fenetre();
          }


          ps: j'ai aucun message d'erreur,rien ne s'affiche

          • Partager sur Facebook
          • Partager sur Twitter
            26 novembre 2014 à 15:16:32

            Tu as déclaré ta fenêtre après la méthode main. Si tu veux que la programme crée une fenêtre, il faut placer l'instruction dans la méthode main.
            • Partager sur Facebook
            • Partager sur Twitter
              26 novembre 2014 à 15:34:44

              Salut,

              Bien vu brubru777.

              En effet, ton accolade fermante du main est placée avant la création de la fenêtre.

              • Partager sur Facebook
              • Partager sur Twitter
                26 novembre 2014 à 15:57:26

                Ligne 6!

                -
                Edité par footsteps 26 novembre 2014 à 15:57:52

                • Partager sur Facebook
                • Partager sur Twitter
                  27 novembre 2014 à 14:21:20

                  Il est passé où ton:

                  JFrame = new JFrame() ;

                  ?

                  Ton code devrait plutôt ressembler à ca:

                  Fenetre.java

                  public class Fenetre extends JFrame {
                  
                    private JFrame fram; //_On crée un attribut
                  
                    public Fenetre(){
                      fram = new JFrame();//_On l'initialise !
                      fram.setTitle("Ma première fenêtre Java");
                      fram.setSize(400, 500);
                      fram.setLocationRelativeTo(null);
                      fram.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);            
                      fram.setVisible(true);
                    }
                  }

                  Test.java

                  public class Tests {
                    public static void main(String[] args){
                   
                        Fenetre fen = new Fenetre();
                     }      
                    
                  }




                  -
                  Edité par AlphazZ 27 novembre 2014 à 14:22:00

                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 novembre 2014 à 15:08:38

                    Salut,

                    Oui pour le fond, non sur la forme, il faut qu'il fasse super(); plutôt que de recréer une fenêtre. Ca n'aurai pas de sens de faire ainsi.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 novembre 2014 à 16:44:06

                      Effectivement, utiliser mon code serait plus juste si je supprimais le "extends JFrame".

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Java débutant

                      × 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