Очистка PaintPanel при нажатии кнопки другой фигуры - PullRequest
1 голос
/ 26 мая 2020

Я пишу программу, которая рисует aws несколько прямоугольников, овалов и линий, когда пользователь выбирает соответствующие кнопки и щелкает панель рисования в программе. Это работает, но когда я нажимаю кнопку другой фигуры сразу за другой, фигуры до этого остаются на панели и не go.

Коды:

public void paint(Graphics g) {
        super.paint(g);
        g.setColor(MyApp.c);
        Graphics2D g2d = (Graphics2D) g;

        if(MyApp.choice == 1) {
            for (int i = 0; i < MyApp.rectangles.size(); i++) {
                g2d.drawRect(MyApp.rectangles.get(i).x, MyApp.rectangles.get(i).y, 150, 200);
            }
        }
        if(MyApp.choice == 2) {
            for (int i = 0; i < MyApp.ovals.size(); i++) {
                g2d.drawOval(MyApp.ovals.get(i).x, MyApp.ovals.get(i).y, 150, 200);
            }
        }
}



public void mouseClicked(MouseEvent e) {
        if(move_flag == false) {
            x = e.getX();
            y = e.getY();
        }
        else {
            Points p = new Points();
            p.x = e.getX();
            p.y = e.getY();
            rectangles.add(p);

        }
        repaint();

        if(move_flag == false) {
            x = e.getX();
            y = e.getY();
        }
        else {
            Points p = new Points();
            p.x = e.getX();
            p.y = e.getY();
            ovals.add(p);


        }

        count++;
        label.setText("Number of Shapes: " + count);
        repaint();

    }



public void actionPerformed(ActionEvent e) {

        if (e.getSource() == rectangle) {
            move_flag = true;
            choice = 1;

        } else if (e.getSource() == oval) {

            move_flag = true;
            choice = 2;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...