我已将一个列表添加到我的小程序中并获得焦点。
在handleEvent中我处理所有按键。
我对按键执行操作。
当按键是方向键时,列表也会到处跳转。这是不希望的。该列表应该只响应鼠标事件而不是按键事件。
如何覆盖或删除 List 组件的默认按键处理?
最佳答案
假设它是一个支持 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:
}
});
关于Java - 覆盖列表的键处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10458954/