📄 menukeyeventdemo.java
字号:
import javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;public class MenuKeyEventDemo extends JFrame implements ActionListener{ private JMenuBar menuBar; private JMenu menu; private JMenuItem font10, font12, font14; private JLabel label; private int fontStyle, fontSize; public MenuKeyEventDemo() { fontStyle = Font.PLAIN; fontSize = 12;/* 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 an ActionListener. */ font10 = new JMenuItem("10"); font10.addActionListener(this); font12 = new JMenuItem("12"); font12.addActionListener(this); font14 = new JMenuItem("14"); font14.addActionListener(this);/* The three JMenuItem objects are placed inside a JMenu. The JMenu *//* registers a MenuKeyListener. */ menu = new JMenu("Font Size"); menu.add(font10); menu.add(font12); menu.add(font14); menu.addMenuKeyListener(new MenuKeyHandler()); menuBar = new JMenuBar(); menuBar.add(menu); label = new JLabel("Java, Java, Java"); label.setFont(new Font("Serif", fontStyle, fontSize)); label.setForeground(Color.black); 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 MenuKeyListener is implemented as an inner class. Whenever *//* the menu display is visible and the user presses a key, the *//* JMenu will generate a MenuKeyEvent and send it to the *//* menuKeyPressed() method. If the keystroke was 'b', the font *//* type is set to Font.BOLD. If the keystroke was 'p', the font *//* type is set to Font.PLAIN. The menuKeyReleased() and *//* menuKeyTyped() methods are not used in this example, so they *//* implemented as stub methods. */ class MenuKeyHandler implements MenuKeyListener { public void menuKeyPressed(MenuKeyEvent event) { if ( event.getKeyCode() == KeyEvent.VK_B ) { fontStyle = Font.BOLD; } if ( event.getKeyCode() == KeyEvent.VK_P ) { fontStyle = Font.PLAIN; } } public void menuKeyReleased(MenuKeyEvent event) {} public void menuKeyTyped(MenuKeyEvent event) {} }/* When a menu item is selected, it generates an ActionEvent that is *//* sent to the actionPerformed() method. This method re-sets the *//* font size of the label. */ public void actionPerformed(ActionEvent event) { fontSize = Integer.parseInt(event.getActionCommand()); label.setFont(new Font("Serif", fontStyle, fontSize)); invalidate(); validate(); } public static void main(String args[]) { MenuKeyEventDemo demo = new MenuKeyEventDemo(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -