2010-11-25 8 views
0

J'ai créé un JPanel, et je veux que mon application crée plusieurs points aléatoires et les place dans le panneau. Je définir la taille du panneau avecplacer des points aléatoires dans un JPanel

setBounds(20, 100, 553, 486); 

Je dois faire attention à mes les limites d'un panneau et seulement créer des points aléatoires qui ont x et y dans ces limites. J'ai créé le code suivant:

for(int j=0;j<c;j++) 
{ 
    number=rand.nextInt(300)+100; 
    xPoint.add(number); 
    yPoint.add(number); 
} 

mais mon application ne fonctionne pas du tout. Je pensais que le problème pouvait provenir de cette partie de mon code. Est-ce que le code ci-dessus place des points juste dans le panneau? Désolé si mon code est trop long, mais toutes ses parties sont liées entre elles:

+0

Définir "ne fonctionne pas du tout". Avez-vous une exception? Comportement inattendu Quitte sans sortie? Votre code semble correct pour créer un nombre aléatoire compris entre 100 et 399 (inclus), mais basé sur l'appel 'setBounds' si vous avez codé en dur' 300' et '100' qui pourrait provoquer un point hors-limites. –

+0

oui, cela provoque "NullPointerException"! –

+2

affichant tout le code pertinent, au lieu de juste le bit qui vous donne l'erreur nous aidera plus ... – npinti

Répondre

1

Le code semble placer des points seulement sur la diagonale de la trame définie par (100, 100, 399, 399).

Je suppose que vous avez besoin de quelque chose comme:

int rndX = rand.nextInt(sizeX) + minX; 
int rndY = rand.nextInt(sizeY) + minY; 
xPoints.add(rndX); 
yPoints.add(rndY); 
1

Si vous obtenez un NullPointerException vous devriez juste regarder le stacktrace de l'exception et de voir quelle ligne vous cause des problèmes. Quelque chose dans cette ligne n'aura pas été créé et est donc nul. Une fois que vous avez identifié l'objet, créez-le.

Si cela ne vous aide pas, mettez à jour votre message avec le code approprié. Ce serait n'importe quelle ligne causant le problème et autant du code qui crée les objets impliqués.