【发布时间】:2014-06-25 00:19:40
【问题描述】:
将以下代码合并到一个简单的程序中时,当处于编辑模式时,它会在 JTable 的单元格内停止光标移动(使用左/右箭头时)。
public void keyPressed(KeyEvent e) {
if ( (e.getKeyCode() == KeyEvent.VK_KP_LEFT) || (e.getKeyCode() == KeyEvent.VK_KP_RIGHT)
|| (e.getKeyCode() == KeyEvent.VK_RIGHT) || (e.getKeyCode() == KeyEvent.VK_LEFT) )
{
//Do nothing
e.consume();
}
}
});
使用上面的相同代码覆盖不同程序中的不同行为会出现意外结果。
在合并代码之前,左/右箭头键会在编辑模式下移动到下一个单元格。合并上面的代码后,恢复了默认行为,而不是像基本示例中那样禁用左/右键。
由于无法提供示例,我想知道在什么情况下 e.consume() 会恢复默认功能?
【问题讨论】:
-
请添加一段简单而实用的代码,向代码提供哪些输入,代码的输出是什么,以及您期望什么。
-
可能在组件使用首选key bindings API 时
-
-1,交叉发布:coderanch.com/t/635617/GUI/java/… 并且 OP 不会按照要求发布 SSCCE,并且已经提到了键绑定并且教程已经链接到。