java swing 添加菜单_Java Swing - 如何添加菜单快捷方式

本文展示了如何在Java Swing中创建带有快捷键的菜单项。通过`JMenuBar`、`JMenuItem`、`KeyStroke`等组件,实现File和Elements菜单,并为各个菜单项设置Ctrl组合键的快捷方式。
摘要由CSDN通过智能技术生成

import static java.awt.event.InputEvent.CTRL_DOWN_MASK;

import javax.swing.ButtonGroup;

import javax.swing.JCheckBoxMenuItem;

import javax.swing.JFrame;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JRadioButtonMenuItem;

import javax.swing.KeyStroke;

public class Main{

public static void main(String[] a) {

FramewithMenuShortcut window = new FramewithMenuShortcut();

window.setBounds(30, 30, 300, 300);

window.setVisible(true);

}

}

class FramewithMenuShortcut extends JFrame {

private JMenuBar menuBar = new JMenuBar(); // Window menu bar

private JMenuItem newItem, openItem, closeItem, saveItem, saveAsItem, printItem;

private JRadioButtonMenuItem lineItem, rectangleItem, circleItem;

private JCheckBoxMenuItem redItem, yellowItem;

public FramewithMenuShortcut() {

JMenu fileMenu = new JMenu("File"); // Create File menu

JMenu elementMenu = new JMenu("Elements"); // Create Elements menu

fileMenu.setMnemonic('F'); // Create shortcut

elementMenu.setMnemonic('E'); // Create shortcut

setDefaultCloseOperation(EXIT_ON_CLOSE);

setJMenuBar(menuBar);

newItem = fileMenu.add("New");

openItem = fileMenu.add("Open");

closeItem = fileMenu.add("Close");

fileMenu.addSeparator();

saveItem = fileMenu.add("Save");

saveAsItem = fileMenu.add("Save As...");

fileMenu.addSeparator();

printItem = fileMenu.add("Print");

elementMenu.add(lineItem = new JRadioButtonMenuItem("Line", true));

elementMenu.add(rectangleItem = new JRadioButtonMenuItem("Rectangle", false));

elementMenu.add(circleItem = new JRadioButtonMenuItem("Circle", false));

ButtonGroup types = new ButtonGroup();

types.add(lineItem);

types.add(rectangleItem);

types.add(circleItem);

elementMenu.addSeparator();

elementMenu.add(redItem = new JCheckBoxMenuItem("Red", false));

elementMenu.add(yellowItem = new JCheckBoxMenuItem("Yellow", false));

menuBar.add(fileMenu);

menuBar.add(elementMenu);

newItem.setAccelerator(KeyStroke.getKeyStroke('N', CTRL_DOWN_MASK));

openItem.setAccelerator(KeyStroke.getKeyStroke('O', CTRL_DOWN_MASK));

saveItem.setAccelerator(KeyStroke.getKeyStroke('S', CTRL_DOWN_MASK));

printItem.setAccelerator(KeyStroke.getKeyStroke('P', CTRL_DOWN_MASK));

lineItem.setAccelerator(KeyStroke.getKeyStroke('L', CTRL_DOWN_MASK));

rectangleItem.setAccelerator(KeyStroke.getKeyStroke('E', CTRL_DOWN_MASK));

circleItem.setAccelerator(KeyStroke.getKeyStroke('I', CTRL_DOWN_MASK));

elementMenu.addSeparator();

redItem.setAccelerator(KeyStroke.getKeyStroke('R', CTRL_DOWN_MASK));

yellowItem.setAccelerator(KeyStroke.getKeyStroke('Y', CTRL_DOWN_MASK));

menuBar.add(fileMenu);

menuBar.add(elementMenu);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值