?? hotkeyproxy.java
字號:
/*
* DesignerKeyListener.java
*
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package dyno.swing.designer.beans.events;
import dyno.swing.designer.beans.*;
import dyno.swing.designer.beans.keys.CopyKey;
import dyno.swing.designer.beans.keys.CutKey;
import dyno.swing.designer.beans.keys.DeletionKey;
import dyno.swing.designer.beans.keys.PasteKey;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.HashMap;
/**
* 進行熱鍵轉發的代理處理器
* @author William Chen
*/
public class HotKeyProxy implements KeyListener {
private HashMap<HotKey, KeyListener> hotKeyProxies;
/** Creates a new instance of DesignerKeyListener */
public HotKeyProxy(SwingDesigner designer) {
hotKeyProxies = new HashMap<HotKey, KeyListener>();
//剪切、復制、粘帖、刪除對應的處理器
hotKeyProxies.put(HotKey.VK_CUT, new CutKey(designer));
hotKeyProxies.put(HotKey.VK_COPY, new CopyKey(designer));
hotKeyProxies.put(HotKey.VK_PASTE, new PasteKey(designer));
hotKeyProxies.put(HotKey.VK_DELETE, new DeletionKey(designer));
}
/**
* 代理keyTyped
*/
@Override
public void keyTyped(KeyEvent e) {
int modifiers = e.getModifiers();
int keyCode = e.getKeyCode();
HotKey key = new HotKey(modifiers, keyCode);
KeyListener proxy = hotKeyProxies.get(key);
if (proxy != null) {
proxy.keyPressed(e);
e.consume();
}
}
/**
* 代理keyPressed
*/
@Override
public void keyPressed(KeyEvent e) {
int modifiers = e.getModifiers();
int keyCode = e.getKeyCode();
HotKey key = new HotKey(modifiers, keyCode);
KeyListener proxy = hotKeyProxies.get(key);
if (proxy != null) {
proxy.keyPressed(e);
e.consume();
}
}
/**
* 代理keyReleased
*/
@Override
public void keyReleased(KeyEvent e) {
int modifiers = e.getModifiers();
int keyCode = e.getKeyCode();
HotKey key = new HotKey(modifiers, keyCode);
KeyListener proxy = hotKeyProxies.get(key);
if (proxy != null) {
proxy.keyReleased(e);
e.consume();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -