Génération d'une matrice [Résolu]

Messages postés
30
Date d'inscription
mardi 25 septembre 2007
Dernière intervention
1 février 2010
- 3 déc. 2008 à 00:31 - Dernière réponse :
Messages postés
744
Date d'inscription
dimanche 1 avril 2007
Dernière intervention
9 mai 2010
- 3 déc. 2008 à 11:12
Bonjour à tous, je suis sous NetBeans 6.5 et je cherche à génerer une matrice(vide pr l'instant), son ordre sera récupéré sur deux jTextFields.
Le problème vient apparement de cette fonction :

public void generer_table()
    {
       
            // Génération Matrice 1;
            int x1 = Integer.parseInt(jTextField1.getText());
            int y1 = Integer.parseInt(jTextField2.getText());
            jPanel1.setLayout(new GridLayout(2, 2));
            JTextField[] groupe1 = new JTextField[x1 * y1];
           
            for (int i = 0; i < (x1 * y1) - 1; i++) {
                jPanel1.add(groupe1[i]);
            }
            jPanel1.setVisible(true);
  }

et voici le stackTrace que je reçois :

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at java.awt.Container.addImpl(Container.java:1027)
        at java.awt.Container.add(Container.java:352)
        at calculmatriciel.Interface.generer_table(Interface.java:41)
        at calculmatriciel.Interface.jButton1ActionPerformed(Interface.java:249)
        at calculmatriciel.Interface.access$000(Interface.java:24)
        at calculmatriciel.Interface$1.actionPerformed(Interface.java:138)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6038)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
        at java.awt.Component.processEvent(Component.java:5803)
        at java.awt.Container.processEvent(Container.java:2058)
        at java.awt.Component.dispatchEventImpl(Component.java:4410)
        at java.awt.Container.dispatchEventImpl(Container.java:2116)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
        at java.awt.Container.dispatchEventImpl(Container.java:2102)
        at java.awt.Window.dispatchEventImpl(Window.java:2429)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

Si vous avez une idée, éclairez moi svp !
Merci d'avance !
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
744
Date d'inscription
dimanche 1 avril 2007
Dernière intervention
9 mai 2010
- 3 déc. 2008 à 11:12
3
Merci
Pense au résolu

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...

Merci dvoraky 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de dvoraky
Messages postés
744
Date d'inscription
dimanche 1 avril 2007
Dernière intervention
9 mai 2010
- 3 déc. 2008 à 09:40
0
Merci
Salut,

Visiblement, tu utilises un Container qui n'a pas été instancié.
Je parierai sur jPanel1.

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
Commenter la réponse de dvoraky
Messages postés
30
Date d'inscription
mardi 25 septembre 2007
Dernière intervention
1 février 2010
- 3 déc. 2008 à 10:17
0
Merci
C'est NerBeans, les Container sont instanciés automatiquement !
Merci pour la réponse
Commenter la réponse de cs_crazysetup
Messages postés
744
Date d'inscription
dimanche 1 avril 2007
Dernière intervention
9 mai 2010
- 3 déc. 2008 à 10:22
0
Merci
Ah... Ben visiblement non ^^
NetBeans, c'est vraiment.... bon je me tais.

Regarde quand même ton erreur --> NullPointerException !!!
C'est sûr et certain que tu utilises une variable qui n'a pas été instanciée, tes jTextField1 ou 2 ???

Vérifies bien... Sinon passes à Eclipse, lui te dira où tu as ton erreur...

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
Commenter la réponse de dvoraky
Messages postés
30
Date d'inscription
mardi 25 septembre 2007
Dernière intervention
1 février 2010
- 3 déc. 2008 à 10:24
0
Merci
Ok, je vais voir ca
Merci !
Commenter la réponse de cs_crazysetup
Messages postés
744
Date d'inscription
dimanche 1 avril 2007
Dernière intervention
9 mai 2010
- 3 déc. 2008 à 10:25
0
Merci
Arf, non je suis bête.
Regardes bien.
Dans ta "matrice" de JTextField, groupe1, tu fait bien un new pour créer ta matrice mais à aucun moment tu instancies chaque case de ta matrice! Donc quand tu fais groupe1[i], ça vaut null !!!

Correction :
public void generer_table()
    {
       
            // Génération Matrice 1;
            int x1 = Integer.parseInt(jTextField1.getText());
            int y1 = Integer.parseInt(jTextField2.getText());
            jPanel1.setLayout(new GridLayout(2, 2));
            JTextField[] groupe1 = new JTextField[x1 * y1];
           
            for (int i = 0; i < (x1 * y1) - 1; i++) {
               groupe1[i] = new JTextField(10); // mets la taille que tu veux à ton champs
                jPanel1.add(groupe1[i]);
            }
            jPanel1.setVisible(true);
  }

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
Commenter la réponse de dvoraky
Messages postés
30
Date d'inscription
mardi 25 septembre 2007
Dernière intervention
1 février 2010
- 3 déc. 2008 à 11:09
0
Merci
Ca marche.
Merci Beacoup !
Commenter la réponse de cs_crazysetup

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.