处理很多关键映射

时间:2013-08-14 10:20:24

标签: java swing keyboard-shortcuts key-bindings actionevent

为Swing中的组件定义大量键映射的操作的最佳方法是什么?

我在Swing中构建了自己的文本视图,并希望为许多键定义操作。我目前正在做的方式(到目前为止大约10个键)是:

ActionMap actionMap = DBDocument.this.getActionMap();
int condition = JComponent.WHEN_FOCUSED;
InputMap inputMap = DBDocument.this.getInputMap(condition);
String tab = "tab";
actionMap.put(tab, new AbstractAction() {
            private static final long   serialVersionUID    = 1L;
            @Override
             public void actionPerformed(ActionEvent ap) {
                if(mDocumentModel != null){
                    //Do some stuff here
                }
             }
          });

这显然是定义键绑定的一种非常冗长的方式。理想情况下,我可以定义一个处理大量可能性的动作(例如[A-Z]或[0-9])。我在OpenJDK中搜索了定义,但没有达到很远。

1 个答案:

答案 0 :(得分:1)

通过应用DRY原则避免重复的荣誉。引用DRY操作的几个示例here,但共同的线程是共享共同模型的操作,例如Document,或者由一组相关按钮共享。