必须要自己重写吗? 
因为在 JDK 1.4 中, JFrame 的API有简单的方法.
在 main 方法中加入: JFrame.setDefaultLookAndFeelDecorated(true);
就可以了, 而且比你想要的还要好. :)

解决方案 »

  1.   

    是老师要求的吗? 
    跟他说 "Java讲究的就是 Component Reuse & Code Reuse"
    不必要 "Re-invent Wheel"
      

  2.   

    看看 API 中 的 setState 方法
    以及 ICONIFIED 和 NORMAL 常量
    提示一下 frameInstance.setState(ICONIFIED);
      

  3.   

    算了,都给你吧 :)
    mport javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;public class JFrameMenuMini extends JFrame implements ActionListener
    {

     public JMenuBar createMenuBar()
     {
       JMenuBar menuBar = new JMenuBar();
       JMenu opMenu = new JMenu("Operation");
       JMenuItem minMenuItem = new JMenuItem("Minimize");
       JMenuItem maxMenuItem = new JMenuItem("Maximize");
       minMenuItem.setActionCommand("minimize");
       maxMenuItem.setActionCommand("maximize");
       minMenuItem.addActionListener(this);
       maxMenuItem.addActionListener(this);
       opMenu.add(minMenuItem);
       opMenu.add(maxMenuItem);
       menuBar.add(opMenu);   return menuBar;
     }
     
     public void actionPerformed(ActionEvent e)
     {
      if("minimize".equals(e.getActionCommand()))
      {
      this.setState(JFrame.ICONIFIED);
       }
       else 
       {
        this.setState(JFrame.NORMAL);
       }
     }
      public static void main(String[] args)
      {    JFrameMenuMini frame = new JFrameMenuMini();    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    frame.setJMenuBar(frame.createMenuBar());
        frame.pack();
        frame.setVisible(true);  }}
      

  4.   

    对了, 里面的那个 maxMenuItem事实上只是还原作用.