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

Composants Java Discussion :

[Débutant(e)] [JTextArea] NullpointerException


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Par défaut [Débutant(e)] [JTextArea] NullpointerException
    j ai une 2 classe definit comme suit dont le premier est la principale c est qui contien donc un main et le 2eme construit un menuBar
    moi je voudrais que lorqu on appuie sur un boutton de menuBar on affiche un message dans le JtexteArea de la classe principale

    Mais j ai une exception de pointer null

    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
     
     
     
    public class Principale extends Jframe {
     
       public JTextArea text;
     
        public  Principale (){
     
        ..... Menu m= new Menu();
             setJMenuBar(m)
     
             texte = new JTextField("ZONE DES RESULTATS ");
     
    ...... ensuite ajouter texte aau container de l interface
     
    }
    }
     
     
     
     
     
     
    public class menu extends JMenuBar
                              implements ActionListener {
     
      .....construccteur d un menu
     
    public void actionPerformed(ActionEvent evt) {
     
         if (evt.getSource() == bouton1 ) { 
     
                    Principale temp = new Principale();
                   temp.texte.setText("un exemple d ecriture sur le texte")
               }
    }




    java.lang.NoSuchFieldError: zoneAffichage
    at MenuFenetre.actionPerformed(MenuFenetre.java:107)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:17
    86)
    at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra
    ctButton.java:1839)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
    .java:420)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258
    )
    at javax.swing.AbstractButton.doClick(AbstractButton.java:289)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1
    113)
    at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseRelease
    d(BasicMenuItemUI.java:943)
    at java.awt.Component.processMouseEvent(Component.java:5100)
    at java.awt.Component.processEvent(Component.java:4897)
    at java.awt.Container.processEvent(Container.java:1569)
    at java.awt.Component.dispatchEventImpl(Component.java:3615)
    at java.awt.Container.dispatchEventImpl(Container.java:1627)
    at java.awt.Component.dispatchEvent(Component.java:3477)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483
    )
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)

    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
    at java.awt.Container.dispatchEventImpl(Container.java:1613)
    at java.awt.Window.dispatchEventImpl(Window.java:1606)
    at java.awt.Component.dispatchEvent(Component.java:3477)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
    read.java:201)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
    ad.java:151)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

    at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

  2. #2
    Membre émérite
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Par défaut
    A priori - mais je rappelle que je suis débutant et que j'ai un niveau de m*rde - je diras que l'erreur ne vient pas du bout de code que tu fournis car il me semble correct. Sauf si t'as effectivement écrit Jframe (f minuscule).

    Nas'

  3. #3
    Membre confirmé Avatar de al85
    Profil pro
    Inscrit en
    Février 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 158
    Par défaut
    Ce n'est pas une NullPointerException, c'est une NoSuchFieldError.
    Le code que tu nous montre se suffit pas à régler ton problème.

  4. #4
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Par défaut
    ok voici ma premiere classe principale

    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
    public class InterfaceParcManege
                            extends JFrame
     
                             {
     
    public JTextArea zoneAffichage;
     
     
    	  public InterfaceParcManege(int longueur, int largeur, String titre){
     
    		  setSize(longueur, largeur);   // taille de la fenetre
     
    		  setTitle(titre);   // titre de la fenetre
     
     
          Container c = getContentPane();
     
     
    MenuFenetre mf = new MenuFenetre();
    setJMenuBar(mf);
     
     
    zoneAffichage = new JTextArea("ZONE DES RESULTATS ");
     
    JScrollPane panelAffichage = new JScrollPane(zoneAffichage); 
    c.add(panelAffichage,BorderLayout.EAST);
     
     
    Image icone = Toolkit.getDefaultToolkit().getImage("icone14.gif");
    this.setIconImage(icone);
     
     
     
     
                show();    // Montrer la fenetre
     
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //Arreter l application
                                                                 //quand la fenetre est fermee
    	  }
     
    public InterfaceParcManege(){}; // pour le menu fentre (filedialog)  pour avoir la fenetre princiapale
     
    public static void main(String[] args) {
     
                 new InterfaceParcManege(800,700,"Parc - Manege");
    }
     }
    et le 2 eme le menubar


    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    public class MenuFenetre extends JMenuBar
                             implements ActionListener, // clic de souris ou enfoncement de la touche Enter
                                        KeyListener
     
                             {
     
       public JMenuItem 
                         lireParc,   lireManege, lireEmplacement;
        JFrame menuF;
     
    String message;
     
           private String nomFichier;
     
       public MenuFenetre() {
     
          JMenu menuFichier = new JMenu(" Fichier ");
          JMenu menuOuvrir = new JMenu(" Ouvrir ");
     
          menuFichier.add(menuOuvrir);
          menuFichier.addSeparator();
     
     
     
          lireParc = new JMenuItem ("Lire un fichier PARC");
          lireManege = new JMenuItem ("Lire un fichier MANEGE");
          lireEmplacement = new JMenuItem ("Lire un fichier EMPLACEMENT");
     
          menuOuvrir.add(lireParc);
          menuOuvrir.add(lireManege);
          menuOuvrir.add(lireEmplacement);
     
     
     
     
     
          add(menuFichier);
     
     
         // setHelpMenu(menuAide);
     
     
     
         // ecouteur
         lireParc.addActionListener(this);
         lireManege.addActionListener(this);
         lireEmplacement.addActionListener(this);
     
     
     
       }
     
     
     public void actionPerformed(ActionEvent evt) {
       //insérer ici le code de la méthode
     Signatures bdDonnees = new Bdd();
     
         if (evt.getSource() == lireParc ) { // bouton lireParc presse
     
              FileDialog boiteParc = new FileDialog(new InterfaceParcManege(), "Ouverture de fichier Parc...",FileDialog.LOAD);// ouvrir repertoire
              boiteParc.show();       // afficher la fenetre permettant de
              String nomParc = boiteParc.getFile();             // le nom du fichier
              String repertoireParc = boiteParc.getDirectory(); // le repertoire du fichier
     
              if (nomParc != null) {
     
                    DialogRemplaceSelection choixRemplace = new DialogRemplaceSelection(new InterfaceParcManege());
                    choixRemplace.show();
     
     
    				InterfaceParcManege temp = new InterfaceParcManege();
    		        JTextArea akim =temp.zoneAffichage;
    		        akim.append("FUCK");
     
                   try{
    		        bdDonnees.lireBddParcs(repertoireParc+nomParc,choixRemplace.remplace);
     
     
     
    		        menuSauver.setEnabled(true);  // rendre le menu sauver disponible
    			   }
    			   catch (IOException e){System.out.println("Erreur de lecture" + nomParc);}
    			   catch (IndexOutOfBoundsException e){System.out.println("Erreur de lecture");}
              }

  5. #5
    Membre émérite Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Par défaut
    je garantie rien mais apparemment l'erreur dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    java.lang.NoSuchFieldError: zoneAffichage 
    at MenuFenetre.actionPerformed(MenuFenetre.java:107)
    or zoneAffichage est un attribut de ton JFrame et tu appelles apparemment ligne 107 de ton fic MenuFenetre.java (donc pas la même classe) ce TextArea ...

    L'attribut n'appartenant pas à MenuFenetre ... il en le trouve pas ... il faut y acceder (tu le passes dans le constructeur de ton MenuFenetre par exemple)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                InterfaceParcManege temp = new InterfaceParcManege(); 
                  JTextArea akim =temp.zoneAffichage; 
                  akim.append("FUCK");
    L'erreur vient d'ici je pense ... mais c'est bizarre tu l'as pourtant mis en public mais c'est ce temp dont je ne cerne pas le pourquoi de sa présence ...

    Bonne chance

  6. #6
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    zoneAffichage n'est pas initiallisé parce que tu fais appel au constructeur vide de ta classe InterfaceParcManege. donc a mon avis si dans ton constructeur vide tu mets un ptit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zoneAffichage = new JTextArea();
    ca devrait fonctionner non ?

  7. #7
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Par défaut
    oui ta raison j ai plus l erreur mais
    il n affiche toujours pas le message dans mon textArea

  8. #8
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    il me semble que tu ne t'y prends pas très bien, tu n'as pas besoin de faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     InterfaceParcManege temp = new InterfaceParcManege();
                  JTextArea akim =temp.zoneAffichage;
                  akim.append("FUCK");
    il te suffit de faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     InterfaceParcManege temp = new InterfaceParcManege();
                  temp.zoneAffichage.append("FUCK");
    meme si je ne saisis pas non plus l'intéret du temp...

    note: c'est pas bien de mettre des attributs en public comme ca... il faut encapsuler

  9. #9
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Par défaut
    zut j ai toujours le meme probleme

  10. #10
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    dans ton constructeur vide tu oublies également de faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JScrollPane panelAffichage = new JScrollPane(zoneAffichage);
    this.getContentPane().add(panelAffichage);
    En effet dans ce constructeur tu n'ajoutes pas ton JScrollPane dans la frame, ca ne peut donc rien afficher... je pense que ca doit etre ca sinon je ne vois pas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur de débutant, java.lang.NullPointerException
    Par Ardillon dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 08/07/2013, 14h42
  2. [débutant] NullPointerException ?
    Par Epistocles dans le forum Langage
    Réponses: 5
    Dernier message: 02/01/2007, 21h04
  3. [Débutant] [JTextArea] Désactiver une touche
    Par picomz dans le forum Composants
    Réponses: 2
    Dernier message: 09/06/2005, 16h52
  4. [Débutant]NullPointerException
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 4
    Dernier message: 18/08/2004, 13h58
  5. [Débutant] Scrolls dans JTextArea
    Par k-reen dans le forum Composants
    Réponses: 2
    Dernier message: 30/06/2004, 16h14

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