/ / Mientras escribe en un campo de texto, habilite una tecla ENTER para activar un botón en JavaFX - javafx-2, javafx, keyboard-events, scenebuilder

Mientras escribe en un campo de texto, habilite una tecla ENTER para activar un botón en JavaFX - javafx-2, javafx, keyboard-events, scenebuilder

Por ejemplo, al escribir en el cuadro de búsqueda de Google, al presionar ENTER se activa la búsqueda.

Acabo de ser introducido a JavaFX y SceneGenerador hace unos días, así que estoy aprendiendo lo básico aquí. Tengo la última versión de JavaFX y estoy usando Scene Builder para facilitar los eventos de acción. Además, cualquier sugerencia de tutoriales relevantes sería útil. En algún momento del día fui se centró en la sección de teclado del panel de codificación de Scene Builder, especialmente con el evento "On Key Released" sin resultados. Gracias de antemano

Aquí hay una idea aproximada de lo que estoy tratando de hacer:

@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();
}

Respuestas

8 para la respuesta № 1

En tus FXML archivo, agregar un onKeyPressed entrenador de animales

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

Implementa el manejador en ti. Controller

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

5 para la respuesta № 2

En TextField, cuando presiona Entrar, recibe una notificación a través de onAction. En tu código Java puedes agregar:

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

En su FXML (o a través del diseñador de JavaFX SceneBuilder), conéctelo al evento OnAction de su TextField. En FXML se ve algo como esto:

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