Как я могу сделать это так, что, когда я нажимаю enter в JTextField, он активирует определенный JButton? Я имею в виду что-то вроде формы веб-страницы, где вы можете нажать Enter, чтобы активировать кнопку в форме. Спасибо.
Java задает фокус на jbutton при нажатии enter
Ответ 1
Вы должны использовать Action
для JButton
:
Action sendAction = new AbstractAction("Send") {
public void actionPerformed(ActionEvent e) {
// do something
}
};
JButton button = new JButton(sendAction);
Затем вы можете установить одно и то же действие для JTextField
или даже на MenuItem
, если вы хотите, чтобы одно и то же действие было доступно в меню:
JTextField textField = new JTextField();
textField.setAction(sendAction);
Ответ 2
Что-то вроде этого должно работать:
textField.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
button.requestFocusInWindow();
}
});
Ответ 3
Вы можете добиться этого, добавив поведение default
к кнопке, например,
cmdLogin.setDefaultCapable(true); // by default, this is true
this.getRootPane().setDefaultButton(cmdLogin); // here `this` is your parent container
Ответ 4
Я бы сделал что-то вроде следующего:
textField.addKeyListener(
new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
button.doClick();
}
}
});
}