zoukankan      html  css  js  c++  java
  • e860. 列出组件绑定的键盘键

    This example demonstrates how to list all the key bindings in a component. Text components have an additional set of key bindings called a keymap. See e1005 列出JTextComponent中键盘映射绑定的键 for an example on how to list those key bindings.

        // List keystrokes in the WHEN_FOCUSED input map of the component
        InputMap map = component.getInputMap(JComponent.WHEN_FOCUSED);
        list(map, map.keys());
        // List keystrokes in the component and in all parent input maps
        list(map, map.allKeys());
        
        // List keystrokes in the WHEN_ANCESTOR_OF_FOCUSED_COMPONENT input map of the component
        map = component.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
        list(map, map.keys());
        // List keystrokes in all related input maps
        list(map, map.allKeys());
        
        // List keystrokes in the WHEN_IN_FOCUSED_WINDOW input map of the component
        map = component.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
        list(map, map.keys());
        // List keystrokes in all related input maps
        list(map, map.allKeys());
        
        public static void list(InputMap map, KeyStroke[] keys) {
            if (keys == null) {
                return;
            }
            for (int i=0; i<keys.length; i++) {
                // This method is defined in e859 将键盘事件和字符串对应
                String keystrokeStr = keyStroke2String(keys[i]);
        
                // Get the action name bound to this keystroke
                while (map.get(keys[i]) == null) {
                    map = map.getParent();
                }
                if (map.get(keys[i]) instanceof String) {
                    String actionName = (String)map.get(keys[i]);
                } else {
                    Action action = (Action)map.get(keys[i]);
                }
            }
        }
    
    Related Examples
  • 相关阅读:
    JTAG的SWD接线方式
    Qt のEXecl
    人脸识别
    Qt实现基本QMainWindow主窗口程序
    Qt学习之路MainWindow学习过程中的知识点
    QT_FORWARD_DECLARE_CLASS
    标准的并发控制实现
    C++ DFS
    C# 互操作(一) 编写一个C++ COM组件
    Socket使用SOAP调用WCF
  • 原文地址:https://www.cnblogs.com/borter/p/9596129.html
Copyright © 2011-2022 走看看