Как новичок, всякий раз, когда я хочу добавить графические фигуры внутри рамки, я делаю что-то вроде этого:
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.fillRect(0, 0, 10, 10);
g.fillOval(10,10,10,10);
}
Как автоматически нарисовать неограниченное количество фигур внутри рамки?Если я буду следовать тому, что делал выше, у меня будет только ограниченное количество фигур (Rect, Oval и ничего больше).
Я ищу что-то другое, например, всякий раз, когда вызывается метод addStuff(x, y)
, он рисует «Материал» автоматически по координатам x и y без необходимости что-либо редактировать внутри paintComponent
снова вручную.
Я делал это с помощью пакета acm, и это было легко.Как и в приведенном ниже коде.
for (int i = 0; i < NCIRCLES; i++) {
double r = rgen.nextDouble(MIN_RADIUS, MAX_RADIUS);
double x = rgen.nextDouble(0, getWidth() - 2 * r);
double y = rgen.nextDouble(0, getHeight() - 2 * r);
GOval circle = new GOval(x, y, 2 * r, 2 * r);
circle.setFilled(true);
circle.setColor(rgen.nextColor());
add(circle);
}
Как вы можете видеть выше, я могу добавить столько кругов, сколько захочу, я знаю, что это может занять страницы, чтобы объяснить это, но я просто хочу краткую инструкцию о том, каксоздайте нечто похожее на код выше, не полагаясь на пакет acm.