package javaapplication10; import javafx.application.Application; import javafx.beans.InvalidationListener; import javafx.beans.Observable; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; import javafx.event.EventHandler; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.input.KeyEvent; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.scene.text.Font; import javafx.scene.text.Text; import javafx.stage.Stage; public class JavaFXCompatibility extends Application { public static void main(String[] args) { launch(args); } Text myTextPressed; Text myTextReleased; Text myTextTyped; StringProperty lastKeyPressed = new SimpleStringProperty("nothing"); StringProperty lastKeyReleased = new SimpleStringProperty("nothing"); StringProperty lastKeyTyped = new SimpleStringProperty("nothing"); @Override public void start(Stage stage) { String type = ""; double space = 10.0F; myTextPressed = new Text(10.0F, 10.0F, "Pressed " + lastKeyPressed.get()); lastKeyPressed.addListener(new InvalidationListener() { @Override public void invalidated(Observable ov) { myTextPressed.setText("Pressed " + lastKeyPressed.get()); } }); myTextPressed.setFont(new Font(10.0F)); myTextPressed.setFill(Color.RED); myTextReleased = new Text(10.0F, 20.0F, "Released " + lastKeyReleased.get()); lastKeyReleased.addListener(new InvalidationListener() { @Override public void invalidated(Observable ov) { myTextReleased.setText("Released " + lastKeyReleased.get()); } }); myTextReleased.setFont(new Font(10.0F)); myTextReleased.setFill(Color.RED); myTextTyped = new Text(10.0F, 30.0F, "Typed " + lastKeyTyped.get()); lastKeyTyped.addListener(new InvalidationListener() { @Override public void invalidated(Observable ov) { myTextTyped.setText("Typed " + lastKeyTyped.get()); } }); myTextTyped.setFont(new Font(10.0F)); myTextTyped.setFill(Color.RED); Rectangle Rectangle_d = new Rectangle(100, 100, 200, 200); Rectangle_d.setFill(Color.RED); Rectangle_d.setFocusTraversable(true); Rectangle_d.setOnKeyPressed(new EventHandler() { @Override public void handle(KeyEvent e) { lastKeyPressed.setValue("Pressed: " + e.getCode().toString()); } }); Rectangle_d.setOnKeyReleased(new EventHandler() { @Override public void handle(KeyEvent e) { lastKeyReleased.setValue("Released: " + e.getCode().toString()); } }); Rectangle_d.setOnKeyTyped(new EventHandler() { @Override public void handle(KeyEvent e) { lastKeyTyped.setValue("Typed: " + e.getCharacter().toString()); } }); Scene scene = new Scene(new Group(), 400, 400); ((Group) scene.getRoot()).getChildren().addAll(myTextPressed, myTextReleased, myTextTyped, Rectangle_d); stage.setScene(scene); Rectangle_d.requestFocus(); stage.show(); } }