swing使enter键在java中的作用类似于jtextfield、jcombobox和jspinner的tab键
我希望enter键的行为与swing应用程序中的tab键类似。这门课在JTextFields上运行良好。如何对JComboBox和Jspinner或框架上的其他控件执行相同的操作?请帮忙
class MyTextField extends JTextField {
MyTextField(int len) {
super(len);
addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent evt) {
int key = evt.getKeyCode();
if (key == KeyEvent.VK_ENTER)
transferFocus();
}
});
}
}
# 1 楼答案
Enter对Swing中的大多数组件都有特殊意义,例如,当按下Enter时,
JTextField
将在注册的ActionListeners
上触发actionPerformed
。修改此行为可能会给应用程序带来意想不到的结果,并可能会让许多用户感到困惑话虽如此,更改焦点遍历键的最佳方法是向
KeyboardFocusManager
提供Set
个KeyStroke
s。这将(主要)使密钥的全局性然而,一些组件提供了自己的焦点遍历键,比如
JTextArea
和JTable
更多细节请看How to use Focus Subsystem