menudragdemo.java

来自「《java事件处理指南》一书的代码,好东西」· Java 代码 · 共 84 行

JAVA
84
字号
import javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;public class MenuDragDemo extends JFrame{   private JMenuBar menuBar;   private JMenu menu;   private JMenuItem font10, font12, font14;   private JLabel label;   public MenuDragDemo()    {/*  A "Font Size" menu is created with three menu items.  The menu    *//*  is intended to set the font size of a label. The three JMenuItem  *//*  objects register a MenuDragMouseListener.                         */      font10 = new JMenuItem("10");      font10.addMenuDragMouseListener(new MenuDragHandler());      font12 = new JMenuItem("12");      font12.addMenuDragMouseListener(new MenuDragHandler());      font14 = new JMenuItem("14");      font14.addMenuDragMouseListener(new MenuDragHandler());      menu = new JMenu("Font Size");      menu.add(font10);      menu.add(font12);      menu.add(font14);      menuBar = new JMenuBar();      menuBar.add(menu);      label = new JLabel("The Rain in Spain");      label.setFont(new Font("Serif", Font.PLAIN, 12));      label.setForeground(Color.black);      label.setVerticalAlignment(SwingConstants.CENTER);      label.setHorizontalAlignment(SwingConstants.CENTER);      JPanel panel = new JPanel();      panel.add(label);      getContentPane().add(menuBar, BorderLayout.NORTH);      getContentPane().add(panel, BorderLayout.CENTER);      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);      setBounds(100, 100, 300, 200);      setVisible(true);   }/*  The MenuDragMouseListener is implemented as an inner class.   *//*  When the user drags the mouse through the items in the        *//*  "Font Size" menu, MenuDragMouseEvents are generated and       *//*  sent to the menuDragMouseEntered() method.  The font size     *//*  of the label is updated to correspond with the menu item      *//*  that generated the event.  The other three methods declared   *//*  in the MenuDragMouseListener interface aren't used in this    *//*  program, so they are implemented as stub methods.             */   class MenuDragHandler implements MenuDragMouseListener   {      public void menuDragMouseEntered(MenuDragMouseEvent event)       {         JMenuItem item = (JMenuItem)event.getComponent();         label.setFont(new Font("Serif", Font.PLAIN,                        Integer.parseInt(item.getActionCommand())));         invalidate();         validate();      }      public void menuDragMouseDragged(MenuDragMouseEvent event) {}      public void menuDragMouseExited(MenuDragMouseEvent event) {}      public void menuDragMouseReleased(MenuDragMouseEvent event) {}   }   public static void main(String args[])    {      MenuDragDemo demo = new MenuDragDemo();   }}

⌨️ 快捷键说明

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