`

swing 文本框快捷键

阅读更多

如何给文本框增加快捷键呢?

Ctrl+Z :恢复(undo)

Ctrl+C :拷贝

Ctrl+X :剪切

Ctrl+V :黏贴

Ctrl+Y :重做

Ctrl+R :使...只读

Ctrl+E :使...可编辑

Ctrl+D :清空文本框

文本框快捷键

	public void addActionMap() {
		getActionMap().put("Undo", new AbstractAction("Undo11") {
			private static final long serialVersionUID = 2434402629308759912L;

			public void actionPerformed(ActionEvent evt) {
				try {
					boolean b = undo.canUndo();
					// System.out.println("whether undo : "+b);
					if (b) {
						undo.undo();
					}
				} catch (CannotUndoException e) {
				}
			}
		});
		getInputMap().put(KeyStroke.getKeyStroke("control Z"), "Undo");

		getActionMap().put("Redo", new AbstractAction("Redo1111") {
			private static final long serialVersionUID = 5348330289578410517L;

			public void actionPerformed(ActionEvent evt) {
				try {
					if (undo.canRedo()) {
						undo.redo();
					}
				} catch (CannotRedoException e) {
				}
			}
		});
		getInputMap().put(KeyStroke.getKeyStroke("control R"), "Redo");

		getActionMap().put("Copy", new AbstractAction("Copy111") {
			private static final long serialVersionUID = -5151480809625853288L;

			public void actionPerformed(ActionEvent evt) {
				copy();
			}

		});
		getInputMap().put(KeyStroke.getKeyStroke("control C"), "Copy");

		getActionMap().put("Cut", new AbstractAction("Cut") {

			private static final long serialVersionUID = 7316612864835857713L;

			public void actionPerformed(ActionEvent evt) {
				cut();
			}

		});

		getInputMap().put(KeyStroke.getKeyStroke("control X"), "Cut");

		getActionMap().put("Paste", new AbstractAction("Paste111") {
			private static final long serialVersionUID = -3548620001691220571L;

			public void actionPerformed(ActionEvent evt) {
				paste();
			}
		});

		getInputMap().put(KeyStroke.getKeyStroke("control V"), "Paste");

		// redo Ctrl + Y
		getActionMap().put("Redo", new AbstractAction("reDo111") {
			private static final long serialVersionUID = -3548620001691220571L;

			public void actionPerformed(ActionEvent evt) {
				if (undo.canRedo()) {
					undo.redo();
				}
			}
		});

		getInputMap().put(KeyStroke.getKeyStroke("control Y"), "Redo");

		getActionMap().put("Save", new AbstractAction("save111") {
			private static final long serialVersionUID = -3548620001691220571L;
			public void actionPerformed(ActionEvent evt) {
				dealSave((JTextComponent)evt.getSource());
			}
		});

		getInputMap().put(KeyStroke.getKeyStroke("control S"), "Save");

		//按Ctrl+R 使文本框只读,不可编辑
		getActionMap().put("Readonly", new AbstractAction("Readonly111") {
			private static final long serialVersionUID = -3548620001691220571L;
			public void actionPerformed(ActionEvent evt) {
				JTextComponent tf=(JTextComponent)evt.getSource();
				if(!ValueWidget.isNullOrEmpty(tf)){
					tf.setEditable(false);
				}
			}
		});
		getInputMap().put(KeyStroke.getKeyStroke("control R"), "Readonly");
		
		//按Ctrl+E 使文本框可编辑
		getActionMap().put("Editable", new AbstractAction("Editable111") {
			private static final long serialVersionUID = -3548620001691220571L;
			public void actionPerformed(ActionEvent evt) {
				JTextComponent tf=(JTextComponent)evt.getSource();
				if(!ValueWidget.isNullOrEmpty(tf)){
					tf.setEditable(true);
					tf.requestFocus();
//					tf.repaint();
					tf.updateUI();
				}
			}
		});
		getInputMap().put(KeyStroke.getKeyStroke("control E"), "Editable");
		
		//按Ctrl+D 清空文本框
		getActionMap().put("cleanUp", new AbstractAction("cleanUp111") {
			private static final long serialVersionUID = -3548620001691220571L;
			public void actionPerformed(ActionEvent evt) {
				JTextComponent tf=(JTextComponent)evt.getSource();
				if(!ValueWidget.isNullOrEmpty(tf)){
					tf.setText(SystemHWUtil.EMPTY);
					tf.requestFocus();
				}
			}
		});
		getInputMap().put(KeyStroke.getKeyStroke("control D"), "cleanUp");
	}

 具体见源代码中的com.swing.component.UndoTextArea

 

0
0
分享到:
评论

相关推荐

    io0007:这是工作以来总结的常用util

    文本框快捷键cmd+M :弹出右键菜单;cmd+L :最大化文本框;cmd+R :使文本框只读;cmd+E :使文本框可以编辑;cmd+Enter :文本框可添加自定义事件;cmd+F :搜索;cmd+G :截图;cmd+D :清空文本框;依赖关系注意:java 编译级别...

    swing导航和示例

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

    Swing基础知识

    开发者通常在JFrame中添加其他组件,如按钮、文本框等。 - **JPanel**: JPanel是Swing中的一个轻量级容器,常用来组织和管理其他组件。 - **JButton**: JButton用于创建可点击的按钮,可以绑定事件监听器来响应...

    深入学习JFC Swing(教材)

    Swing提供了大量可定制的组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)、滚动窗格(JScrollPane)等。这些组件都继承自AbstractComponent类,具有丰富的事件处理机制,支持添加...

    Java Swing'组件集合

    首先,Swing 提供了丰富的组件集,包括按钮(JButton)、文本框(JTextField)、标签(JLabel)、复选框(JCheckBox)、单选按钮(JRadioButton)、滚动面板(JScrollPane)、菜单(JMenu)和菜单项( JMenuItem)等...

    Java Swing 学习代码

    2. **文本框(JTextField)**:JTextField是用于输入单行文本的组件,常用于获取用户输入。可以设置其最大字符数,文本过滤器等属性,也可以添加TextListener或DocumentListener来监听文本变化。 3. **复选框...

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

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

    Java.Swing图形界面开发与案例详解随书实例代码

    Swing提供了丰富的组件集,包括按钮、文本框、菜单等,使得开发者能够创建功能强大的、交互式的应用程序。本资源包包含的随书实例代码涵盖了从基础到进阶的多个章节,旨在帮助读者深入理解和掌握Java Swing的使用。 ...

    开源的Swing组件 JIDE

    菜单和工具栏组件在JIDE中也得到了增强,它们不仅具有标准Swing组件的所有功能,还增加了诸如快捷键配置、图标自定义等高级特性。这使得开发人员能够创建出更具专业感和用户友好的界面。对话框组件在JIDE中也有丰富...

    用eclipse进行awt,swing,界面化开发

    首先,AWT是Java最早提供的GUI库,它提供了基本的窗口组件,如按钮、文本框等。AWT组件与操作系统紧密集成,因此具有较好的性能和平台一致性。然而,由于AWT直接依赖于本地操作系统,导致其界面风格可能因平台而异,...

    java的Swing控件实例

    在Swing中,控件是指可以交互的GUI元素,如按钮、文本框、菜单等。Swing控件是轻量级的,它们不依赖于操作系统,因此可以在不同平台上提供一致的用户体验。 Swing组件基于Abstract Window Toolkit (AWT),但相比AWT...

    javaswing代码

    - **键盘快捷键设置**:通过`setMnemonic()`方法可以设置组件的键盘快捷键。 #### 6. 树形结构操作 - **树节点操作**:`DefaultMutableTreeNode`类用于表示树结构中的一个节点,可以对节点进行增删改查操作。 - **...

    java2 图形设计 卷II Swing.

    Swing组件包括按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)、滚动窗格( JScrollPane)、菜单(JMenu)等,以及对话框(JOptionPane)和其他复杂的布局管理器。这些组件使得开发者可以...

    Swing控件源程序

    Swing组件库包括了各种各样的控件,如按钮、文本框、标签、滚动面板、菜单、对话框等,这些控件都继承自轻量级组件体系结构,与AWT(Abstract Window Toolkit)相比,Swing具有更好的跨平台兼容性和更多的自定义选项...

    Swing 王鹏

    在Swing中,开发者可以使用各种组件来构建用户界面,如按钮(JButton),文本框(JTextField),标签(JLabel),滚动面板(JScrollPane),对话框(JOptionPane),以及更复杂的容器如JFrame(主窗口)和JPanel(可自定义的...

    java swing拼图游戏

    Swing 提供了一系列组件,如按钮、面板、文本框等,这些组件使得开发者能够创建出功能丰富的交互式界面。 Swing 拼图游戏的核心机制可能包括以下几个方面: 1. 图片加载:首先,游戏需要读取并加载一张图片。这...

    java写的贪吃舌游戏,java swing界面。

    它包含了一组轻量级的组件,如按钮、文本框、面板等,这些组件可以组合起来创建复杂的用户界面。Swing也支持事件处理,使得程序能够响应用户的交互,例如键盘和鼠标操作,这在贪吃蛇游戏中尤为重要。 【游戏实现】 ...

    深入学习:JFC Swing-Java基础类组件集

    JFC Swing的高级特性还包括对键盘快捷键的支持、对国际化和本地化(i18n/l10n)的支持,这些特性让Swing的应用程序能够适应不同文化和语言环境。 通过阅读和学习《深入学习:JFC Swing-Java基础类组件集》,开发者...

    JAVA图形设计—swing包程序例子

    Swing 提供了大量预定义的组件,如按钮(JButton)、文本框(JTextField)、面板(JPanel)、滚动条(JScrollPane)、菜单(JMenu)等,这些都是构建用户界面的基本元素。此外,Swing 还支持事件处理、布局管理以及...

    JavaSwing 图形界面开发与案例详解源文件

    Swing 提供了一系列组件,如按钮、文本框、菜单等,使得开发者能够构建功能丰富的交互式图形界面。 在"JavaSwing 图形界面开发与案例详解"这本书中,作者深入浅出地介绍了如何使用Swing进行GUI编程。源代码文件列表...

Global site tag (gtag.js) - Google Analytics