package textinput; import com.sun.glass.ui.Robot; import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.TextArea; import javafx.scene.layout.HBox; import javafx.stage.Stage; import java.awt.event.KeyEvent; public class TextAreaRobotUndoApp extends Application { private Scene scene; public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) throws Exception { stage.setScene(createScene()); stage.show(); } private Scene createScene() { final TextArea textArea = new TextArea(); textArea.focusedProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observableValue, Boolean aBoolean, Boolean newVal) { int[] line = { KeyEvent.VK_L, KeyEvent.VK_I, KeyEvent.VK_N, KeyEvent.VK_E }; if (newVal) { Robot robot = com.sun.glass.ui.Application.GetApplication().createRobot(); for (int i = 0; i < line.length; i++) { robot.keyPress(line[i]); robot.keyRelease(line[i]); } robot.keyPress(KeyEvent.VK_BACK_SPACE); robot.keyRelease(KeyEvent.VK_BACK_SPACE); robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_Z); robot.keyRelease(KeyEvent.VK_Z); robot.keyRelease(KeyEvent.VK_CONTROL); } } }); HBox root = new HBox(5); root.getChildren().add(new Button("Button")); root.getChildren().add(textArea); scene = new Scene(root, 1200, 800); return scene; } }