...jbinit(...)
{
  ....
  //my code 
   draw(this.getGraphics);
  repaint)_;
}

解决方案 »

  1.   

    你必须用frame中的paint或paintComponents方法,或重置repaint方法
    1) 你的draw_shape方法在jbinit方法的末尾执行化出图形,进接着jbinit方法执行完成后会执行paint方法,paint方法会根据你射定的背景色或默认的背景色进行填充。这样就覆盖了你前面所化的图形,并且jbinit方法只是在frame初始化时执行draw_shape方法被调用,而frame在被拖动、改变大小和外观变化时都会调用repaint方法,而repaint方法默认调用paint方法。你的图形当然显示不出来。
    2)简单的方法是重置paint方法
    public void paint(Graphics g) {
    super.paint(g);
    this.draw_shape(g);
    }