删除的组件仍然对以后的绘制功能有影响

时间:2019-05-13 02:02:28

标签: java applet components

我试图让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

0 个答案:

没有答案