Java - 覆盖列表的密钥处理

时间:2012-05-05 04:50:27

标签: java list input components

我已将一个列表添加到我的小程序中。

在handleEvent中我处理所有按键。

我对按键执行操作。

当键是箭头键时,列表也会跳到各处。这是不可取的。该列表应仅响应鼠标事件而不是关键事件。

如何覆盖或删除List组件的默认密钥处理?

1 个答案:

答案 0 :(得分:2)

假设它是一个支持KeyListener的组件,只需添加KeyListenerconsume()它就不会到达组件。 添加了一些额外的密钥。

jl.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent ke) {
                            int key = ke.getKeyCode();
                switch (key){
                             case KeyEvent.VK_DOWN:
                             case KeyEvent.VK_UP:
                             case KeyEvent.VK_RIGHT:
                             case KeyEvent.VK_LEFT:
                             case KeyEvent.VK_KP_DOWN:
                             case KeyEvent.VK_KP_UP:
                             case KeyEvent.VK_KP_RIGHT:
                             case KeyEvent.VK_KP_LEFT:
                    ke.consume();
                                    break;
                 default: 
                    }
        });