Можно ли определить, когда кто-то нажимает Enterпри вводе JTextField в java? Без необходимости создавать кнопку и устанавливать ее по умолчанию.
источник
Можно ли определить, когда кто-то нажимает Enterпри вводе JTextField в java? Без необходимости создавать кнопку и устанавливать ее по умолчанию.
A JTextField
был разработан для использования в ActionListener
точности как JButton
есть. См. addActionListener()
Метод JTextField
.
Например:
Action action = new AbstractAction()
{
@Override
public void actionPerformed(ActionEvent e)
{
System.out.println("some action");
}
};
JTextField textField = new JTextField(10);
textField.addActionListener( action );
Теперь событие запускается при использовании Enterключа.
Кроме того, дополнительным преимуществом является то, что вы можете поделиться слушателем с помощью кнопки, даже если вы не хотите делать кнопку кнопкой по умолчанию.
JButton button = new JButton("Do Something");
button.addActionListener( action );
Обратите внимание: в этом примере используется Action
, который реализует, ActionListener
потому что Action
это новый API с дополнительными функциями. Например, вы можете отключить, Action
что отключит событие как для текстового поля, так и для кнопки.
все, что вам нужно сделать, это добавитьActionListener в JTextField, как указано выше! После нажатия Enterна выписку действие будет выполнено, что вы хотите!
источник
Добавить мероприятие для
KeyPressed
.источник
KeyListeners
имеет много недостатков, о которых в большей степени заботятсяKeyBindings
, например, связанные с фокусом, копированием / вставкой и многими другими. Этого следует избегать для тривиальных задач, например, как указано в OP.Вы хотите сделать что-то подобное?
источник
Сначала добавьте команду действия в JButton или JTextField:
Затем добавьте ActionListener как в JTextField, так и в JButton.
После этого в реализации ActionListener напишите
источник
Другие ответы (включая принятые) хороши, но если вы уже используете Java8, вы можете сделать следующее (более коротким и новым способом):
Как сказано в принятом ответе, вы можете просто отреагировать с помощью
ActionListener
, который улавливает клавишу Enter.Однако в моем подходе используются функциональные концепции, представленные в Java 8.
Если вы хотите использовать одно и то же действие, например, для кнопки и JTextField, вы можете сделать следующее:
Если потребуется дополнительное объяснение, дайте мне знать!
источник
Если вы хотите установить действие кнопки по умолчанию во вводе JTextField, вы должны сделать это:
Это [0], потому что кнопка может иметь много действий, но обычно имеет только одно (ActionPerformed).
источник
Для каждого текстового поля в вашем фрейме вызовите метод addKeyListener. Затем реализуйте и переопределите метод keyPressed, как указывали другие. Теперь вы можете нажать Enter из любого поля вашего фрейма, чтобы активировать свое действие.
источник
Чтобы написать логику для «Enter press» в
JTextField
, лучше сохранить логику внутриkeyReleased()
блока вместоkeyTyped()
&keyPressed()
.источник
KeyListeners
Слишком низкий уровеньSwing
с точки зрения России. Используйте API, который предназначен для используется сSwing
:-)Просто используйте этот код:
источник