/************************************************** * Author: Morrison * Date: 26 Oct 202020 **************************************************/ import javafx.application.Application; import javafx.application.Platform; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.layout.BorderPane; import javafx.scene.paint.Color; public class MouseDemo extends Application { private Canvas canvas; private Stage primary; public MouseDemo() { canvas = new Canvas(800,600); } @Override public void init() { } @Override public void start(Stage primary) { this.primary = primary; GraphicsContext pen = canvas.getGraphicsContext2D(); pen.fillRect(0, 0, canvas.getWidth(), canvas.getHeight()); mouseifyCanvas(); BorderPane bp = new BorderPane(); bp.setCenter(canvas); primary.setScene(new Scene(bp)); primary.show(); } public void mouseifyCanvas() { GraphicsContext pen = canvas.getGraphicsContext2D(); canvas.setOnMouseEntered( e -> { pen.setFill(Color.YELLOW); pen.fillRect(0, 0, canvas.getWidth(), canvas.getHeight()); }); canvas.setOnMouseExited( e -> { pen.setFill(Color.BLACK); pen.fillRect(0, 0, canvas.getWidth(), canvas.getHeight()); }); canvas.setOnMouseClicked( e -> { pen.setFill(Color.BLUE); pen.fillRect(0,0,canvas.getWidth(),canvas.getHeight()); }); canvas.setOnMousePressed( e -> { pen.setFill(Color.RED); pen.fillRect(0,0,canvas.getWidth(),canvas.getHeight()); }); canvas.setOnMouseReleased(e -> { pen.setFill(Color.GREEN); pen.fillRect(0, 0, canvas.getWidth(), canvas.getHeight()); }); } @Override public void stop() { } }