actiondemo2.java

来自「java 完全探索的随书源码」· Java 代码 · 共 117 行

JAVA
117
字号
// ActionDemo2.java

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;

class ActionDemo2 extends JFrame
{
   Action open, save;

   ActionDemo2 (String title)
   {
      super (title);

      addWindowListener (new WindowAdapter ()
                         {
                             public void windowClosing (WindowEvent e)
                             {
                                System.exit (0);
                             }
                         });

      open  = new AbstractAction ("Open...",
                                  new ImageIcon ("open.gif"))
              {
                  public void actionPerformed (ActionEvent e)
                  {
                     System.out.println ("Open file.");
                  }
              };

      save  = new AbstractAction ("Save...",
                                  new ImageIcon ("save.gif"))
              {
                  public void actionPerformed (ActionEvent e)
                  {
                     System.out.println ("Save file.");
                  }
              };

      JToolBar tb = new JToolBar ();

      JButton b = new JButton ();
      b.setToolTipText ("Open a file.");

      // The following setText method call must be made after setAction
      // to disable text.

      b.setText ("");
      b.setAction (open);
      tb.add (b);

      b = new JButton ();
      b.setToolTipText ("Save a file.");
      b.setAction (save);
      b.setText ("");
      tb.add (b);
   
      JMenu file = new JMenu ("File");

      JMenuItem mi = new JMenuItem ();
      mi.setAction (open);
      mi.setIcon (null);
      file.add (mi);

      mi = new JMenuItem ();

      // The following setIcon method call must be made after setAction
      // to disable icon.

      mi.setIcon (null); 
      mi.setAction (save);
      file.add (mi);

      JMenuBar mb = new JMenuBar ();
      mb.add (file);

      JMenu options = new JMenu ("Options");
      JCheckBoxMenuItem cbmi = new JCheckBoxMenuItem ("Enabled");
      cbmi.setSelected (true);

      ItemListener il = new ItemListener ()
                        {
                            public void itemStateChanged (ItemEvent e)
                            {
                               JCheckBoxMenuItem cbmi;
                               cbmi = (JCheckBoxMenuItem) e.getSource ();
                               boolean selected;
                               selected = e.getStateChange () ==
                                          ItemEvent.SELECTED;
                               open.setEnabled (selected);
                               save.setEnabled (selected);
                            }
                        };

      cbmi.addItemListener (il);
      options.add (cbmi);
      mb.add (options);

      setJMenuBar (mb);

      JPanel p = new JPanel ();
      p.add (tb);

      getContentPane ().add (p, BorderLayout.WEST);

      setSize (200, 100);
      setVisible (true);
   }

   public static void main (String [] args)
   {
      new ActionDemo2 ("Action Demo2");
   }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?