/ / Enquanto digita em um campo de texto, ative a tecla ENTER para ativar um botão no JavaFX - javafx-2, javafx, keyboard-events, scenebuilder

Ao digitar em um campo de texto, ative a tecla ENTER para ativar um botão no JavaFX - javafx-2, javafx, keyboard-events, scenebuilder

Como digitar na caixa de pesquisa do Google, pressionar ENTER ativa a pesquisa

Eu acabei de ser apresentado ao JavaFX e SceneBuilder há alguns dias atrás, então estou aprendendo o básico aqui. Tenho a versão mais recente do JavaFX e estou usando o Scene Builder para facilitar eventos de ação. Além disso, qualquer ponteiro para tutoriais relevantes seria útil. Em um ponto do dia em que estive focado na seção Keyboard do painel de codificação do Scene Builder, especialmente com o evento "On Key Released" sem resultados. Agradecemos antecipadamente

Aqui está uma idéia aproximada do que estou tentando fazer:

@FXML
Text Field theTextField;

@FXML
Button theButton;

@FXML
void ButtonPressed() {
//do stuff here
}

@FXML
//when ENTER is pressed the button is activated
void textFieldEnterPressed() {
ButtonPressed();
}

Respostas:

8 para resposta № 1

Na tua FXML arquivo, adicione um onKeyPressed manipulador

 <TextField fx:id="yourTextField" onKeyPressed="#handleEnterPressed">

Implemente o manipulador em você Controller

@FXML
public void handleEnterPressed(KeyEvent event)
if (event.getCode() == KeyCode.ENTER) {
// do some actions
}
}

5 para resposta № 2

No TextField, quando você pressiona Enter, você recebe uma notificação onAction. No seu código Java, você pode adicionar:

@FXML
private void handleTFAction(ActionEvent event) {
TextField source = (TextField)event.getSource();
System.out.println("You entered: "+source.getText());
}

Em seu FXML (ou através do designer JavaFX SceneBuilder) conecte-o ao evento OnAction do seu TextField. Em FXML, é algo como isto:

<TextField onAction="#handleTFAction" ... />