A JTextField
foi projetado para usar ActionListener
exatamente como a JButton
é. Veja o addActionListener()
método de JTextField
.
Por exemplo:
Action action = new AbstractAction()
{
@Override
public void actionPerformed(ActionEvent e)
{
System.out.println("some action");
}
};
JTextField textField = new JTextField(10);
textField.addActionListener( action );
Agora o evento é disparado quando a Enterchave é usada.
Além disso, um benefício adicional é que você pode compartilhar o ouvinte com um botão, mesmo se não quiser tornar o botão um botão padrão.
JButton button = new JButton("Do Something");
button.addActionListener( action );
Observe que este exemplo usa um Action
, que implementa ActionListener
porque Action
é uma API mais recente com recursos adicionais. Por exemplo, você pode desabilitar o Action
que desabilitaria o evento para o campo de texto e o botão.
tudo que você precisa fazer é adicionarActionListener ao JTextField como acima! Após pressionar Entera ação será realizada o que você deseja no extrato!
fonte
Adicione um evento para
KeyPressed
.fonte
KeyListeners
têm muitas deficiências, que são resolvidas em maior medida porKeyBindings
, como, relacionado ao foco, relacionado ao copiar / colar e muitos mais. Deve ser evitado, para tarefas triviais, como, conforme solicitado no OP.Você quer fazer algo assim?
fonte
Primeiro adicione o comando de ação em JButton ou JTextField por:
Em seguida, adicione ActionListener a JTextField e JButton.
Depois disso, On you ActionListener implementação de gravação
fonte
As outras respostas (incluindo as aceitas) são boas, mas se você já usa Java8, você pode fazer o seguinte (de uma forma mais curta e mais recente):
Conforme a resposta aceita, você pode simplesmente reagir com um
ActionListener
, que captura a tecla Enter.No entanto, minha abordagem se beneficia dos conceitos funcionais introduzidos no Java 8.
Se quiser usar a mesma ação, por exemplo, para um botão e o JTextField, você pode fazer o seguinte:
Se precisar de mais explicações, por favor me avise!
fonte
Se você deseja definir uma ação de botão padrão em um JTextField enter, você deve fazer isto:
É [0] porque um botão pode ter várias ações, mas normalmente tem apenas uma (ActionPerformed).
fonte
Para cada campo de texto em seu quadro, invoque o método addKeyListener. Em seguida, implemente e substitua o método keyPressed, como outros indicaram. Agora você pode pressionar Enter em qualquer campo do quadro para ativar sua ação.
fonte
Para escrever a lógica para 'Enter pressione'
JTextField
, é melhor manter a lógica dentro dokeyReleased()
bloco em vez dekeyTyped()
&keyPressed()
.fonte
KeyListeners
São de nível muito baixo daSwing
perspectiva de. Use a API que se destina a ser usado comSwing
:-)Basta usar este código:
fonte