swing 文本框快捷键

简介:

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

Ctrl+Z :恢复(undo)

Ctrl+C :拷贝

Ctrl+X :剪切

Ctrl+V :黏贴

Ctrl+Y :重做

Ctrl+R :使...只读

Ctrl+E :使...可编辑

Ctrl+D :清空文本框

文本框快捷键

Java代码   收藏代码
  1.     public void addActionMap() {  
  2.         getActionMap().put("Undo"new AbstractAction("Undo11") {  
  3.             private static final long serialVersionUID = 2434402629308759912L;  
  4.   
  5.             public void actionPerformed(ActionEvent evt) {  
  6.                 try {  
  7.                     boolean b = undo.canUndo();  
  8.                     // System.out.println("whether undo : "+b);  
  9.                     if (b) {  
  10.                         undo.undo();  
  11.                     }  
  12.                 } catch (CannotUndoException e) {  
  13.                 }  
  14.             }  
  15.         });  
  16.         getInputMap().put(KeyStroke.getKeyStroke("control Z"), "Undo");  
  17.   
  18.         getActionMap().put("Redo"new AbstractAction("Redo1111") {  
  19.             private static final long serialVersionUID = 5348330289578410517L;  
  20.   
  21.             public void actionPerformed(ActionEvent evt) {  
  22.                 try {  
  23.                     if (undo.canRedo()) {  
  24.                         undo.redo();  
  25.                     }  
  26.                 } catch (CannotRedoException e) {  
  27.                 }  
  28.             }  
  29.         });  
  30.         getInputMap().put(KeyStroke.getKeyStroke("control R"), "Redo");  
  31.   
  32.         getActionMap().put("Copy"new AbstractAction("Copy111") {  
  33.             private static final long serialVersionUID = -5151480809625853288L;  
  34.   
  35.             public void actionPerformed(ActionEvent evt) {  
  36.                 copy();  
  37.             }  
  38.   
  39.         });  
  40.         getInputMap().put(KeyStroke.getKeyStroke("control C"), "Copy");  
  41.   
  42.         getActionMap().put("Cut"new AbstractAction("Cut") {  
  43.   
  44.             private static final long serialVersionUID = 7316612864835857713L;  
  45.   
  46.             public void actionPerformed(ActionEvent evt) {  
  47.                 cut();  
  48.             }  
  49.   
  50.         });  
  51.   
  52.         getInputMap().put(KeyStroke.getKeyStroke("control X"), "Cut");  
  53.   
  54.         getActionMap().put("Paste"new AbstractAction("Paste111") {  
  55.             private static final long serialVersionUID = -3548620001691220571L;  
  56.   
  57.             public void actionPerformed(ActionEvent evt) {  
  58.                 paste();  
  59.             }  
  60.         });  
  61.   
  62.         getInputMap().put(KeyStroke.getKeyStroke("control V"), "Paste");  
  63.   
  64.         // redo Ctrl + Y  
  65.         getActionMap().put("Redo"new AbstractAction("reDo111") {  
  66.             private static final long serialVersionUID = -3548620001691220571L;  
  67.   
  68.             public void actionPerformed(ActionEvent evt) {  
  69.                 if (undo.canRedo()) {  
  70.                     undo.redo();  
  71.                 }  
  72.             }  
  73.         });  
  74.   
  75.         getInputMap().put(KeyStroke.getKeyStroke("control Y"), "Redo");  
  76.   
  77.         getActionMap().put("Save"new AbstractAction("save111") {  
  78.             private static final long serialVersionUID = -3548620001691220571L;  
  79.             public void actionPerformed(ActionEvent evt) {  
  80.                 dealSave((JTextComponent)evt.getSource());  
  81.             }  
  82.         });  
  83.   
  84.         getInputMap().put(KeyStroke.getKeyStroke("control S"), "Save");  
  85.   
  86.         //按Ctrl+R 使文本框只读,不可编辑  
  87.         getActionMap().put("Readonly"new AbstractAction("Readonly111") {  
  88.             private static final long serialVersionUID = -3548620001691220571L;  
  89.             public void actionPerformed(ActionEvent evt) {  
  90.                 JTextComponent tf=(JTextComponent)evt.getSource();  
  91.                 if(!ValueWidget.isNullOrEmpty(tf)){  
  92.                     tf.setEditable(false);  
  93.                 }  
  94.             }  
  95.         });  
  96.         getInputMap().put(KeyStroke.getKeyStroke("control R"), "Readonly");  
  97.           
  98.         //按Ctrl+E 使文本框可编辑  
  99.         getActionMap().put("Editable"new AbstractAction("Editable111") {  
  100.             private static final long serialVersionUID = -3548620001691220571L;  
  101.             public void actionPerformed(ActionEvent evt) {  
  102.                 JTextComponent tf=(JTextComponent)evt.getSource();  
  103.                 if(!ValueWidget.isNullOrEmpty(tf)){  
  104.                     tf.setEditable(true);  
  105.                     tf.requestFocus();  
  106. //                  tf.repaint();  
  107.                     tf.updateUI();  
  108.                 }  
  109.             }  
  110.         });  
  111.         getInputMap().put(KeyStroke.getKeyStroke("control E"), "Editable");  
  112.           
  113.         //按Ctrl+D 清空文本框  
  114.         getActionMap().put("cleanUp"new AbstractAction("cleanUp111") {  
  115.             private static final long serialVersionUID = -3548620001691220571L;  
  116.             public void actionPerformed(ActionEvent evt) {  
  117.                 JTextComponent tf=(JTextComponent)evt.getSource();  
  118.                 if(!ValueWidget.isNullOrEmpty(tf)){  
  119.                     tf.setText(SystemHWUtil.EMPTY);  
  120.                     tf.requestFocus();  
  121.                 }  
  122.             }  
  123.         });  
  124.         getInputMap().put(KeyStroke.getKeyStroke("control D"), "cleanUp");  
  125.     }  

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

相关文章
|
2月前
|
Python
tkinter之菜单按钮
tkinter之菜单按钮
32 1
|
1月前
|
图形学
基于Swing 实现放大镜效果
基于Swing 实现放大镜效果
9 0
|
Python
【tkinter学习笔记 - 3】:Radiobutton单选按钮、Checkbutton复选按钮
【tkinter学习笔记 - 3】:Radiobutton单选按钮、Checkbutton复选按钮
167 0
【tkinter学习笔记 - 3】:Radiobutton单选按钮、Checkbutton复选按钮
|
移动开发
Swing中JLabel标签文字自动换行
JLabel中如果想让其上的文本标签换行显示,用一般的/r,/n是没有作用的。
1837 0
|
JSON 数据格式 Python
Tkinter小结 界面+快捷键设置
前言 基础知识点 前导篇 Button篇 Label篇 Entry篇 其他控件 事件篇 小应用 总结 前言 之前写过一个关于Python 使用easyUI创建桌面小应用的博客,虽然easyUI很实用,但是安装方面确实存在一些小小的问题。
1591 0
|
Java 容器
《Java 2 图形设计卷Ⅱ- SWING》第9章 反转按钮、复选框和单选框
第9章 反转按钮、复选框和单选框   本章介绍三种Swing按钮:反转按钮、复选按钮和单选按钮,它们分别由JToggleButton、JCheckBox和JRadioButton类代表。
1215 0
|
Java 数据安全/隐私保护