本帖最后由 zsw_2009 于 2009-12-14 14:34:45 编辑

解决方案 »

  1.   

    import java.awt.Graphics;import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;public class san extends JFrame { private JMenuBar j1; private JMenu ja1, ja2; public san() {
    j1 = new JMenuBar();
    this.setJMenuBar(j1);
    ja1 = new JMenu("文件(F)");
    ja2 = new JMenu("编辑(E)");
    j1.add(ja1);
    j1.add(ja2);
    } public void paint(Graphics g) {
    super.paintComponents(g);//============here=========
    g.drawOval(80, 100, 200, 200);
    } public static void main(String[] args) {
    san ca = new san();
    ca.setTitle("candan");
    ca.setSize(400, 450);
    ca.setDefaultCloseOperation(ca.EXIT_ON_CLOSE);
    ca.setVisible(true); }
    }
      

  2.   

    查看一下api文檔~~~!!
    paint
    public void paint(Graphics g)绘制容器。该方法将 paint 转发给任意一个此容器子组件的轻量级组件。如果重新实现此方法,那么应该调用 super.paint(g) 方法,从而可以正确地呈现轻量级组件。如果通过 g 中的当前剪切设置完全剪切某个子组件,则不会将 paint() 转发给这个子组件。 
      

  3.   

    谢谢。问题解决了,但super.paintComponents(g);是什么意思呢?