2012-05-05 45 views
1

我有一个列表添加到我的小程序焦点。Java - 覆盖列表的关键处理

在handleEvent中,我处理所有按键。

我对按键执行操作。

当按键是方向键时,列表也会跳到各处。这是不可取的。该列表只能响应鼠标事件而不是关键事件。

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

+0

您使用的是什么类型的列表成员? JList? – Krrose27

+0

对不起,它的java.awt.List没有摆动。 –

+0

没关系。见下文。 – Krrose27

回答

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: 
        } 
     });