import javafx.application.Application; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.input.MouseEvent; import javafx.scene.layout.Pane; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.stage.Stage; public class TextDrawingExample extends Application { public void start(Stage primaryStage) { Pane p = new Pane(); Canvas canvas = new Canvas(300, 300); p.getChildren().add(canvas); GraphicsContext aPen = canvas.getGraphicsContext2D(); aPen.setStroke(Color.BLACK); aPen.setFill(Color.YELLOW); Scene scene = new Scene(p, 300, 300); // Draw a piece of text wherever the mouse is pressed canvas.setOnMousePressed(new EventHandler() { public void handle(MouseEvent mouseEvent) { double[] x = new double[4]; x[0] = mouseEvent.getX(); x[1] = mouseEvent.getX() + 30; x[2] = mouseEvent.getX() + 50; x[3] = mouseEvent.getX() + 10; double[] y = new double[4]; y[0] = mouseEvent.getY(); y[1] = mouseEvent.getY() + 5; y[2] = mouseEvent.getY() + 35; y[3] = mouseEvent.getY() + 50; //aPen.strokePolyline(x,y,4); //aPen.strokeArc(mouseEvent.getX(), mouseEvent.getY(), 100, 50, 0, 270, ArcType.ROUND); aPen.setFont(Font.font ("Stencil", 40)); aPen.fillText("Hello", mouseEvent.getX(), mouseEvent.getY()); aPen.strokeText("Hello", mouseEvent.getX(), mouseEvent.getY()); //aPen.fillText("Hello", mouseEvent.getX(), mouseEvent.getY()); } }); primaryStage.setTitle("Text Drawing Example"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }