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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值