1

我有一个列表添加到我的小程序中,重点是。

在 handleEvent 我处理所有按键。

我对键执行操作。

当键是方向键时,列表也跳来跳去。这是不可取的。该列表应该只响应鼠标事件而不是按键事件。

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

4

1 回答 1

2

假设它是一个支持 KeyListener 的组件,只需添加一个KeyListener并且consume()它不会到达组件。添加了一些额外的键。

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: 
                    }
        });
于 2012-05-05T04:57:30.050 回答