Я пытаюсь заставить 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);
}
}
Я ожидал полного черного квадрата, но есть пробел, где раньше была удаленная кнопка.
Скриншот проблемы