2010-11-25 3 views
0

Я создал JPanel, и я хочу, чтобы мое приложение создало несколько случайных точек и поместило их в панель. Я определяю размер панели сместо случайных точек в JPanel

setBounds(20, 100, 553, 486); 

я должен обратить внимание на пределы моей панели и создавать только случайные точки, которые имеют х и у в этих пределах. Я создал следующий код:

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

но мое приложение не работает вообще. Я думал, что проблема может быть в этой части моего кода. Описанный выше код указывает только на панель? Извините, если мой код слишком длинный, но все его части связаны друг с другом:

+0

Определить «не работает вообще». Вы получаете исключение? Неожиданное поведение? Выход без вывода? Ваш код выглядит ОК для создания случайного числа от 100 до 399 (включительно), но на основе вызова `setBounds`, если вы жестко кодируете` 300` и ​​`100`, что может привести к точке за пределами границ. – 2010-11-25 11:17:41

ответ

1

Код, кажется, помещает точки только по диагонали кадра, определенного (100, 100, 3999, 399).

Я думаю, что вам нужно что-то вроде:

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

Если вы получите NullPointerException вы должны просто посмотреть на StackTrace исключительной ситуации и увидеть, какая линия причиняет вам проблемы. Что-то в этой строке не будет создано и поэтому является нулевым. Как только вы определили, какой именно объект, просто создайте его.

Если это не поможет, обновите сообщение соответствующим кодом. Это будет любая строка, вызывающая проблему, и столько же кода, который создает задействованные объекты.