Удаленные компоненты по-прежнему влияют на последующие функции рисования - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь заставить 2 класса взаимодействовать с одним и тем же объектом Graphics, но удаление компонента Button в 1-м классе создает пустое пространство, где оно было после вызова drawRect () во 2-м классе.

Я пробовал комбинацию validate (), revalidate () и repaint () в обоих классах.

1-й класс:

    import java.applet.Applet;
    import java.awt.*;
    import java.awt.event.*;

    import testpackage.testing_draw_class;

    public class testing_class_draw_main extends Applet implements ActionListener {
        Button b;
        testing_draw_class test;
        Graphics g;
        public void init() {
            b = new Button("test now!");
            add(b);
            b.addActionListener(this);

            test = new testing_draw_class();
            g = getGraphics();
        }

        public void actionPerformed(ActionEvent e){
            remove(b);  // removes button
            revalidate();
            test.paint(g);
        }
    }

2-й класс:

    package testpackage;

    import java.applet.Applet;
    import java.awt.*;

    public class testing_draw_class extends Applet {
        public void paint(Graphics g){
            g.setColor(Color.BLACK);
            g.fillRect(0,0,300,300);
        }
    }

Я ожидал полного черного квадрата, но есть пробел, где раньше была удаленная кнопка. Скриншот проблемы

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