import java.io.*; 
import javax.swing.*; 
public class Test extends JFrame{ 
public static void main(String[] args){ 
      new Test().init(); 
              } 
              public void init(){ 
              setSize(600,400); 
              setVisible(true);       addWindowListener(new WindowAdapter(){ 
            public void windowClosing(WindowEvent e){ 
            System.exit(0); 
            } 
            }); 
            } 
            public void paint(Graphics g){ 
            super.paint(g); 
            g.drawLine(267,114,26,114);} 

现在能画一条直线 如何去重画直线..
小弟新手 能给写的详细些吗?

解决方案 »

  1.   

    在 addWindowListener 之后再加上以下代码:
            addComponentListener(new ComponentAdapter(){
                public void componentResized(ComponentEvent e){
                    if(isShowing()){
                        repaint(); 
                    }                
                }            
            });
      

  2.   

    再罗嗦两句吧.
    JFrame被设计用来作为高层次容器,你现在直接在上面画东西,是个很不好的习惯.影响性能,