У меня есть класс рисования, который расширяет JPanel и имеет метод void, называемый Drawing с repaint()
.
public class draw extends JPanel {
public draw(int position_x, int position_y, int width, int height) {
positionx = position_x;
positiony = position_y;
this.width = width;
this.height = height;
}
public void drawing() {
repaint();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLUE);
g.fillRect(positionx, positiony, width, height);
}
}
Итак, я собираюсь создать множество этих прямоугольников в JPanel, чтобы онисоздать графическую панель.
public class coin_launcher {
public static void main(String[] args) {
JFrame frame = new JFrame("Coin Launcher");
frame.setVisible(true);
frame.setSize(1920, 1080);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
draw object = new draw(2,2,100,2);
frame.add(object);
object.drawing();
draw object2 = new draw(2,6,200,2);
frame.add(object2);
object2.drawing();
}
}
Проблема в том, что когда я вызываю drawing()
в обоих объектах, рисуется только один.Если использовать отладчик только его первый, если я не, его только второй.Мне нужно сделать 100 баров, но он буквально перерисовывает JPanel
каждый раз, как я могу добавить разные классы рисования в один JPanel
, не стирая остальные?