在paint中把所有Component都取出来,调用Component.repaint()方法。

解决方案 »

  1.   

    可以在panel上作图,只要重载它的paint()方法就可以了。
    给你一个例子:
    class JP extends JPanel {
    public void paint(Graphics g){
                    super.paint(g);
                    g.drawLine(0,0,100,100);
             }
    }
    你只要用JP来定义panel就可以了。
      

  2.   

    如果是在APPLET中,可以这么处理,把控件的添加放在init()函数中,paint() 仅仅对不包含panel的的部分进行绘制就可以了。示例代码如下:
    ublic void init(){
    super.init();
    setLayout(new BorderLayout());

    Panel controls=new Panel();
    controls.setSize(640,40);
    //---往 Panel上添加控件 //----------
    add("South",controls);
    }
    在paint(Graphics g)中对上部分进行绘图,这样控件就不会闪烁了
      

  3.   

    重载Panel的Paint 
    然后用G。getGrapics() 方法不就可以了吗??
      

  4.   

    说详细点吧
    java 的这样的问题最多了