⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hotkeyproxy.java

📁 SWING的界面UI包 SWING的界面UI包
💻 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 + -