2012-12-05 4 views
-1

Voici la chose: ma méthode principale appelle uniquement InitGui. A l'intérieur toute la classe (essentiellement le fichier entier, j'ai la méthode InitGui et quelques objets graphiques statiques publics. L'un des objets est actuall un tableauPointeur avec tableau public

public static JButton Keys[] = null; 

et moi avons une méthode appelée placeKeys qui obtient l'emplacement chaque JButton "Keys" et le place sur le panneau.Le code entier fonctionne quand je n'utilise pas cette méthode, fondamentalement au lieu de i = 0 à tout, je veux juste appeler placeKey (arguments ici ...) au lieu de pour chaque DButton à placer comme celui-ci

for i=0 to whatever 
Keys[i] = new JButton(jBStringArray[i]); 
     Keys[i].setLocation(2 + i*kSize,2+row*50); 
     Keys[i].setSize(50, kSize);  
     keyboardPane.add(Keys[i]);    

J'ai la méthode écrit mais il signale une erreur de pointeur au placeKeys quand il tente d'accéder aux touches [], ce qui signifie la première ligne de la méthode

espère que vous avez bien compris

+0

Alors, quel est le vrai code? Malheureusement, la boucle n'est pas correcte, donc je ne peux pas dire si c'est le problème ou non. Aussi, assurez-vous d'indiquer explicitement quelle est votre exception - c'est probablement 'NullPointerException', mais je ne peux pas être sûr à 100%. – Makoto

+0

oui - c'est NullPointerException –

+0

la boucle est appelée multiple avec différents arguments, parfois elle n'est même pas appelée mais seulement ces 4 lignes sont appelées pour 1 valeur, mais je veux une méthode pour faire ces 4 lignes ... –

Répondre

1

Avant votre boucle (soit lorsque vous déclarez, ou, si vous comptez sur le chèque nul, juste avant la boucle for) vous devez créer le tableau avec Keys = new JButton[whatever+1];. Oh et s'il vous plaît commencer vos noms de variables avec une lettre minuscule - c'est la chose universellement acceptée à faire.

0
//assuming jBStringArray is already defined here 
public static JButton Keys[] = new JButton[jBStringArray.length];