使用ActionMap的JFrame键盘快捷键?

费尔南多·派瓦(Fernando Paiva)

我正在尝试使用ActionMap和InputMap为JFrame创建快捷方式。但是仍然无法完成这项工作。我使用AbstractAction创建了ActionMap来创建动作,并创建了InputMap来注册事件,但是不起作用

private void acoesTela(){         
        JPanel painel = (JPanel)this.getContentPane();
        ActionMap actionMap = painel.getActionMap();    
        actionMap.put("consultaProdutos", new AbstractAction() {  
            @Override  
            public void actionPerformed(ActionEvent evt) {  
                System.out.println("F3 is pressed");
            }              
        });  

        /** registra acoes */
        InputMap imap = painel.getInputMap(JPanel.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);  
        imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0), "consultaProdutos"); 

    }
费尔南多·派瓦(Fernando Paiva)

我解决了问题。我这样做了:我添加了一个JPanel主体,并且在此JPanel中添加了其他JPanel以及使用JPanel主体所做的操作。

这是我的工作方式。

private void acoesTela(){
        ActionMap am = panelPrincipal.getActionMap();
        am.put("vaiQtd", new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                txtFieldQtd.requestFocus();
                txtFieldQtd.selectAll();
            }
        });

        am.put("vaiCodigo", new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                txtFieldCod.requestFocus();
                txtFieldCod.selectAll();
            }
        });

        InputMap im = panelPrincipal.getInputMap(JPanel.WHEN_IN_FOCUSED_WINDOW);
        im.put(KeyStroke.getKeyStroke(KeyEvent.VK_F4, 0), "vaiQtd");
        im.put(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0), "vaiCodigo");
    }

现在一切正常。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用键盘快捷键启动Rhythmbox

来自分类Dev

使用键盘快捷键粘贴文本

来自分类Dev

使用键盘快捷键粘贴文本

来自分类Dev

使用键盘快捷键清除终端

来自分类Dev

使用键盘快捷键启动Rhythmbox

来自分类Dev

如何使用键盘快捷键挂起?

来自分类Dev

如何使用|| 在键盘快捷键上?

来自分类Dev

无效的键盘键的键盘快捷键

来自分类Dev

无法使用`Esc`键创建键盘快捷键

来自分类Dev

行尾的键盘快捷键

来自分类Dev

大胆的键盘快捷键

来自分类Dev

大胆的键盘快捷键

来自分类Dev

键盘快捷键损坏

来自分类Dev

DuckDuckGo键盘快捷键

来自分类Dev

Chrome键盘快捷键

来自分类Dev

PowerShell键盘快捷键

来自分类Dev

绑定键盘快捷键

来自分类Dev

WebStorm 键盘快捷键

来自分类Dev

设置键盘快捷键

来自分类Dev

使用键盘快捷键输入“↑”(向上箭头)

来自分类Dev

使用键盘快捷键关闭当前选项卡

来自分类Dev

无法在Ubuntu上使用IntelliJ IDEA键盘快捷键

来自分类Dev

哪些键盘快捷键不应该使用?

来自分类Dev

Chrome和Firefox都未使用哪些键盘快捷键?

来自分类Dev

CKEDITOR使用键盘快捷键插入特殊符号

来自分类Dev

使用UIKeyCommand映射键盘快捷键使UITextField / View无效

来自分类Dev

如何使用键盘快捷键打开菜单?

来自分类Dev

无法在Ubuntu上使用IntelliJ IDEA键盘快捷键

来自分类Dev

使用键盘快捷键输入“↑”(向上箭头)