JPanel怎么一开始不重画啊?
这是一个添加杂色的程序: 
 import   java.awt.*; 
 import   java.awt.image.*;   
 import   javax.swing.*; 
 import   java.util.*;   
 public   class   Modify1   extends   JPanel    
 {   
 	/** 
 	   *   @param   args 
 	   */ 
 	Image   img; 
 	int[]   colors; 
 	Random   ra=new   Random(); 
 	public   Modify1(int   w,int   h) 
 	{ 
 		colors=new   int[w*h]; 
                         for(int   i=0;i <w*h;i++) 
                         { 
                         	int   r=Math.abs(ra.nextInt()%255); 
                         	int   g=Math.abs(ra.nextInt()%255); 
                         	int   b=Math.abs(ra.nextInt()%255);                        	 
                         	colors[i]=255 < <24   |   r < <   16   |   g < <8   |   b; 
                         } 
                         img=this.createImage(new   MemoryImageSource(w,h,colors,0,w)); 
 	} 
 	public   void   paintComponent(Graphics   g) 
 	{ 
 		g.drawImage(img,0,   0,   this); 
 	} 
 	public   static   void   main(String[]   args)   { 
 		JFrame   jf=new   JFrame(); 
 		jf.setSize(400,400); 
 		Modify1   m=new   Modify1(400,400); 
 		jf.setDefaultCloseOperation(3); 
 		jf.setVisible(true); 
                         jf.setContentPane(m); 
 	}   
 } 
 为什么当窗口显示时JPanel里什么也没有,而当我重新设置窗口大小时,就显示图片了.当然,我用m.setSize(400,400);后肯定是会显示的,但是我总觉得这样并不是根本解决了问题.因为有时候我写的程序又不会出现这种情况,有时候又会出现,真的是郁闷死我了.
------解决方案--------------------正常 没有问题
------解决方案--------------------jf.setVisible(true); 
 jf.setContentPane(m); 
 ======================== 
 这两句换过来