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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值