我应该如何做才能使在JTextField中按下回车键时激活特定的JButton?我的意思是类似于网页表单,在其中可以按Enter键来激活表单中的按钮。
你应该为 JButton
使用一个 Action
:
Action sendAction = new AbstractAction("Send") {
public void actionPerformed(ActionEvent e) {
// do something
}
};
JButton button = new JButton(sendAction);
如果你想让同一个操作在菜单中和 JTextField
上都可用,那么你可以给它们设置相同的操作:
JTextField textField = new JTextField();
textField.setAction(sendAction);
类似这样的代码应该可以正常工作:
textField.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
button.requestFocusInWindow();
}
});
default
行为添加到按钮来实现此目的,如下所示。cmdLogin.setDefaultCapable(true); // by default, this is true
this.getRootPane().setDefaultButton(cmdLogin); // here `this` is your parent container
我会这样做:
```textField.addKeyListener(
new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
button.doClick();
}
}
});
}