Events und Event Filter in JavaFX
In diesem Artikel lernst du die Events und Event Filter in JavaFX kennen. Dabei geht es im Prinzip darum, was passiert, wenn man z.B. über ein Element fährt, oder eine Tast auf seiner Tastatur anklickt. Schauen wir uns zuerst Mouse Events in JavaFX an.
Beispiel für Mouse Events in JavaFX
Button button = new Button();
button.setText("Hallo Welt");
Label mouseLabel = new Label("Verwende den Button");
button.setOnMousePressed(new EventHandler() {
public void handle(MouseEvent mouseEvent) {
mouseLabel.setText("Maus geklickt");
}
});
button.setOnMouseEntered(new EventHandler() {
public void handle(MouseEvent mouseEvent) {
mouseLabel.setText("Maus ist rein");
}
});
button.setOnMouseExited(new EventHandler() {
public void handle(MouseEvent mouseEvent) {
mouseLabel.setText("Maus ist raus");
}
});
Damit können wir nun direkt sehen, wie wir z.B. Code ausführen können, wenn eine Nutzer einfach nur über einen Button fährt, sogar ohne ihn zu klicken. Oder ihn verlässt, ohne zu klicken. Selbst den Klick können wir direkt erkennen. Wir haben mit dem Klick Event selbst ja bereits gearbeitet.
[image img_id=”6316″ alt=”Mouse Event in JavaFX” width=”421″ height=”160″] Leider erkennt man das im Bild nicht, aber im Moment des Aufnehmens, war ich mit der Maus über dem Button, daher wird mir der Text angezeigt, Maus ist rein. Damit ist gemeint, dass das letzte Maus Event, das erkannt wurde, war als ich mit der Maus über den Button gefahren bin.
Schauen wir uns als nächstes an, wie das mit Tastenberührungen aus der Tastatur aussieht.
Key Events in JavaFX:
TextField textField = new TextField();
textField.setPromptText("Schreibe hier");
Label textFieldLabel = new Label("Schreibe");
textField.setOnKeyPressed(new EventHandler() {
public void handle(KeyEvent ke) {
textFieldLabel.setText("Key gedrückt: " + ke.getText());
}
});
textField.setOnKeyReleased(new EventHandler() {
public void handle(KeyEvent ke) {
textFieldLabel.setText("Key losgelassen: " + ke.getText());
}
});
Dabei kann ich nun erkennen, wann eine Taste gedrückt und wieder losgelassen wurde. Es macht je nach Anwendung Sinn mal das eine, mal das andere Event zu verwenden.