我已将一个列表添加到我的小程序中。
在handleEvent中我处理所有按键。
我对按键执行操作。
当键是箭头键时,列表也会跳到各处。这是不可取的。该列表应仅响应鼠标事件而不是关键事件。
如何覆盖或删除List组件的默认密钥处理?
答案 0 :(得分: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:
}
});