Génération d'une matrice

Résolu
cs_crazysetup Messages postés 30 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 février 2010 - 3 déc. 2008 à 00:31
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre 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 !

7 réponses

dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
3 déc. 2008 à 11:12
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...
3
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
3 déc. 2008 à 09:40
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...
0
cs_crazysetup Messages postés 30 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 février 2010
3 déc. 2008 à 10:17
C'est NerBeans, les Container sont instanciés automatiquement !
Merci pour la réponse
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
3 déc. 2008 à 10:22
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...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_crazysetup Messages postés 30 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 février 2010
3 déc. 2008 à 10:24
Ok, je vais voir ca
Merci !
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
3 déc. 2008 à 10:25
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...
0
cs_crazysetup Messages postés 30 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 février 2010
3 déc. 2008 à 11:09
Ca marche.
Merci Beacoup !
0
Rejoignez-nous