我试图让2个类与同一个Graphics对象进行交互,但是在第1个类上删除Button组件会在第2个类中调用drawRect()之后创建一个空白区域。
我在两个类中都尝试了validate(),revalidate()和repaint()的组合。
第一堂课
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);
}
}
二等班:
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);
}
}
我期望有一个完整的黑色方块,但是删除的按钮以前有一个缝隙。 Screenshot of problem