`

Swing 给菜单按钮添加快捷键

阅读更多
package Assis;

import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.SwingUtilities;

public class Sketcher {

	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				creatGUI();
			}
		});

	}

	static void creatGUI() {
		window = new SketchFrame("Sketcher");
		Toolkit theKit = window.getToolkit();
		Dimension wndSize = theKit.getScreenSize();

		window.setBounds(wndSize.width / 4, wndSize.height / 4, // 位置
				wndSize.width / 2, wndSize.height / 2); // 大小

		window.setVisible(true);

	}

	private static SketchFrame window;
}

 

package Assis;

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;
import static java.awt.event.InputEvent.*;

public class SketchFrame extends JFrame {
	private static final long serialVersionUID = 1L;

	// 构造函数
	public SketchFrame(String title) {
		setTitle(title); // 设置窗口标题
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setJMenuBar(menuBar); // 添加菜单栏到窗口

		JMenu fileMenu = new JMenu("File"); // 创建File菜单
		JMenu elementMenu = new JMenu("Elements"); // 创建Elements菜单
		fileMenu.setMnemonic('F'); // 创建快捷键
		elementMenu.setMnemonic('E'); // 创建快捷键

		// 构造file下拉菜单
		newItem = fileMenu.add("new"); // 添加New项目
		openItem = fileMenu.add("Open"); // 添加Open项目
		closeItem = fileMenu.add("Close"); // 添加Close项目
		fileMenu.addSeparator(); // 添加Separator
		saveItem = fileMenu.add("save"); // 添加Save项目
		saveAsItem = fileMenu.add("Save as"); // 添加Save As项目
		fileMenu.addSeparator(); // 添加Separator
		printItem = fileMenu.add("print"); // 添加Print项目

		// 添加File菜单加速键
		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));

		// 构造Element下拉菜单
		elementMenu.add(lineItem = new JRadioButtonMenuItem("Line", true));
		elementMenu.add(rectangleItem = new JRadioButtonMenuItem("Rectangle",
				false));
		elementMenu.add(circleItem = new JRadioButtonMenuItem("Circle", false));
		elementMenu.add(curveItem = new JRadioButtonMenuItem("Curve", false));
		ButtonGroup types = new ButtonGroup();
		types.add(lineItem);
		types.add(rectangleItem);
		types.add(circleItem);
		types.add(curveItem);

		// 添加element类型加速键
		lineItem.setAccelerator(KeyStroke.getKeyStroke('L', CTRL_DOWN_MASK));
		rectangleItem.setAccelerator(KeyStroke
				.getKeyStroke('E', CTRL_DOWN_MASK));
		circleItem.setAccelerator(KeyStroke.getKeyStroke('I', CTRL_DOWN_MASK));
		curveItem.setAccelerator(KeyStroke.getKeyStroke('V', CTRL_DOWN_MASK));

		elementMenu.addSeparator();

		// 创建color子菜单
		JMenu colorMenu = new JMenu("Color"); // Color子菜单
		elementMenu.add(colorMenu); // 添加子菜单
		colorMenu.add(redItem = new JCheckBoxMenuItem("Red", false));
		colorMenu.add(yellowItem = new JCheckBoxMenuItem("Yellow", false));
		colorMenu.add(greenItem = new JCheckBoxMenuItem("Green", false));
		colorMenu.add(blueItem = new JCheckBoxMenuItem("Blue", true));

		// 添加element color加速键
		redItem.setAccelerator(KeyStroke.getKeyStroke('R', CTRL_DOWN_MASK));
		yellowItem.setAccelerator(KeyStroke.getKeyStroke('Y', CTRL_DOWN_MASK));
		greenItem.setAccelerator(KeyStroke.getKeyStroke('G', CTRL_DOWN_MASK));
		blueItem.setAccelerator(KeyStroke.getKeyStroke('B', CTRL_DOWN_MASK));

		menuBar.add(fileMenu); // 添加file菜单
		menuBar.add(elementMenu); // 添加element菜单
	}

	private JMenuBar menuBar = new JMenuBar(); // 窗口菜单栏

	// File菜单项目
	JMenuItem newItem, openItem, closeItem, saveItem, saveAsItem, printItem;

	// Element菜单项目
	JRadioButtonMenuItem lineItem, rectangleItem, circleItem, curveItem,
			textItem;
	private JCheckBoxMenuItem redItem, yellowItem, greenItem, blueItem;
}

 

分享到:
评论

相关推荐

    java 在JButton上设置快捷键

    有时候,为了提高用户体验和交互效率,我们希望为`JButton`添加快捷键或者访问键(accelerator key)。在本篇文章中,我们将详细探讨如何在Java中为`JButton`设置快捷键。 首先,我们需要了解快捷键的基本概念。...

    java swing 菜单按钮

    在Swing中,菜单按钮是创建交互式用户界面的关键元素,尤其是对于那些需要多个操作选项的应用程序。本教程将深入讲解Java Swing中的菜单按钮及其使用方法,非常适合初学者。 一、JMenuBar与JMenu 在Swing中,菜单...

    Swing 弹出式菜单用法

    Swing 菜单控件可以在菜单中使用图标,菜单项可以为单选按钮或者复选框,并可以为菜单项指定加速键和快捷键。大多数的标准控件都可以用做菜单项。另外,Swing 菜单为程序提供了大家熟悉的菜单分隔线、弹出式菜单和子...

    菜单及Swing组件

    Swing组件包括但不限于`JButton`(按钮)、`JLabel`(标签)、`JTextField`(文本字段)、`JTextArea`(多行文本区域)、`JCheckBox`(复选框)、`JRadioButton`(单选按钮)和`JComboBox`(下拉框)。每个组件都有...

    在系统菜单中添加菜单项

    5. **集成到系统菜单**:在系统菜单(如Windows的控制菜单,即窗口左上角的最小化、最大化和关闭按钮所在的菜单)中添加自定义项,通常需要使用操作系统提供的API函数,比如Windows的`AppendMenu`函数。 6. **测试...

    javaswing窗体开发参考文档

    本文档旨在详细介绍Swing菜单和工具栏的相关知识点,帮助开发者更好地理解和应用这些组件。 #### 二、Swing菜单概述 Swing菜单是基于`JComponent`的子类设计,这意味着它们继承了Swing组件的所有优点。菜单和菜单...

    swing JPopupMenu 单击按钮弹出 例子下载

    通过这个简单的例子,我们可以学习到如何在Java Swing中使用JPopupMenu组件,以及如何与按钮交互来显示和处理菜单项的点击事件。这在设计用户界面时是非常实用的技巧,特别是在需要提供快捷操作或更多选项的情况下。

    Java弹出菜单,为JTextArea添加了右键弹出式菜单,实现了复制、粘贴、剪切

    Java 弹出菜单可以用于各种类型的组件,例如按钮、文本框、列表框等。 二、JTextArea 和 MouseListener 在我们的示例代码中,我们使用了 JTextArea 组件来显示文本,并使用 MouseListener 来捕获用户的右键点击...

    java Swing初级编程

    本资源包含Swing方面的基础知识: ...16菜单快捷键 17模式对话框 18网格布局管理器 19复选框 20单选框 21下拉式列表框 22网格块布局管理器 23带工具提示的按钮 24带边的按钮 25改变文本对齐方式 26滑杆

    Swing基础知识

    - JMenuBar用于创建菜单栏,JMenu用于创建菜单,.JMenuItem用于创建菜单项,可以添加快捷键和事件监听器。 10. **Swing的模型视图控制器**: - Swing遵循MVC(Model-View-Controller)设计模式,组件的逻辑...

    java swing 图形界面实例

    在Java Swing中,你可以使用组件(Components)来构建丰富的交互式应用程序,这些组件包括按钮(JButton)、菜单(JMenu)、菜单栏(JMenuBar)和菜单项(JMenuItem)等。 Swing 提供了轻量级的组件模型,它基于 ...

    swing导航和示例

    Swing中的导航主要指的是在组件之间,如按钮、文本框和菜单之间的交互方式,这些通常涉及键盘快捷键和鼠标操作。 Swing组件包括但不限于: 1. **JFrame**: 应用程序的主窗口,通常作为其他组件的容器。 2. **JPanel...

    Java_Swing_项目使用.doc

    `setMnemonic(char mnemonic)`方法用于设置菜单项的快捷键,`setAccelerator(KeyStroke keyStroke)`用于设置菜单项的快捷键组合。通过`addActionListener(ActionListener listener)`添加监听器,当用户点击菜单项时...

    java的swing的员工管理系统.rar

    另外,系统可能还提供了菜单栏或快捷键来实现优雅的退出。 总之,这个员工管理系统展示了Swing在构建桌面应用中的能力,包括组件布局、事件处理、数据库交互以及文件操作等多方面的Java核心技术。它是一个很好的...

    深入学习JFC Swing(教材)

    同时,JMenu和JMenuBar用于构建应用程序的菜单系统,提供丰富的菜单项和快捷键支持。 六、组件定制与外观美化 Swing允许开发者自定义组件的行为和外观。通过继承已有的组件并重写方法,可以创建具有特定功能的新...

    Java Swing'组件集合

    6. JMenu和JMenuItem:菜单和菜单项构成下拉菜单系统,`add()`方法用于添加子菜单项,`setAccelerator()`设置快捷键。 Swing 还引入了一些高级组件,如JTable、JTree和JTabbedPane: 7. JTable:用于显示二维数据...

    Java Swing 学习代码

    8. **菜单(JMenu, JMenuItem)**:菜单系统是Swing的重要组成部分,包括菜单栏、菜单和菜单项。可以设置快捷键,添加ActionListener来响应用户的点击事件。 9. **快捷键加速器(Accelerator)**:快捷键可以提高...

    Swing控件源程序

    10. **JMenuBar** 和 **JMenu**: 这些组件用于创建菜单栏和子菜单,可以方便地添加各种菜单项和快捷键。 11. **JDialog**: JDialog可以创建弹出式对话框,比如警告、确认或输入对话框,它可以是模态或非模态的。 ...

    Java课程设计--财务信息管理系统(Swing) .zip

    5. **菜单栏与快捷键**:通过JMenuBar和JMenu可以创建菜单栏,JMenuItem用于添加菜单项,结合Key Bindings可以设置快捷键,提高用户体验。 从标签“java 开发语言 后端 apache swing”可以看出,这个项目可能也涉及...

    swing复杂控件使用

    JMenu支持快捷键、分隔符以及子菜单,通过添加ActionListener可以监听用户的菜单选择,执行相应的动作。 3. **JTable**:JTable是一个强大的组件,用于展示二维表格数据。它可以显示和编辑数据,并且提供了多种排序...

Global site tag (gtag.js) - Google Analytics