[英]Capture ENTER KeyEvent and Do a Click instead
我已经将ENTER键添加到默认的FocusTraversalKeys中,例如...
private void focus() {
Set forwardKeys = getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS);
Set newForwardKeys = new java.util.HashSet(forwardKeys);
newForwardKeys.add(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0));
setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, newForwardKeys);
}
我有一个使用焦点的产品信息表单,但是当涉及到保存按钮时,我想单击该按钮,而不是焦点转到下一个组件。
我已将KeyPressed和KeyReleased侦听器添加到按钮,然后尝试了此操作...
private void saveButtonKeyPressed(java.awt.event.KeyEvent evt) {
if (evt.getKeyCode() == java.awt.event.KeyEvent.VK_ENTER) {
evt.consume();
saveButton.doClick();
}
}
同样的方法适用于我的“文本区域”,但是代码不执行“单击”操作,而是将重点放在下一个也是按钮的组件上。
请提出一些有助于我达到所需结果的建议。 在下面找到所用表格的图像。
不要使用KeyListener。 Swing被设计为与键绑定一起使用。
签出Enter Key and Button以获得一些解决方案,一种使用键绑定,另一种使用不同的方法。
当按钮获得焦点时,从定义的SET i中删除了ENTER键,因此现在可以使用KeyReleased方法。
private void saveButtonFocusGained(java.awt.event.FocusEvent evt) {
newForwardKeys.remove(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0));
setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, newForwardKeys);
}
谢谢你们每一个人的帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.