1 package org
.eclipse
.tracecompass
.internal
.provisional
.tmf
.ui
.views
.timegraph2
.swtjfx
.examples
;
3 import org
.eclipse
.jdt
.annotation
.Nullable
;
5 import javafx
.application
.Application
;
6 import javafx
.event
.EventHandler
;
7 import javafx
.scene
.Cursor
;
8 import javafx
.scene
.Group
;
9 import javafx
.scene
.Scene
;
10 import javafx
.scene
.input
.MouseEvent
;
11 import javafx
.scene
.paint
.Color
;
12 import javafx
.scene
.shape
.Circle
;
13 import javafx
.stage
.Stage
;
16 * @web http://java-buddy.blogspot.com/
18 public class ExampleMouseDrag
extends Application
{
20 private double orgSceneX
, orgSceneY
;
21 private double orgTranslateX
, orgTranslateY
;
24 public void start(@Nullable Stage primaryStage
) {
25 if (primaryStage
== null) {
30 Circle circleRed
= new Circle(50.0, Color
.RED
);
31 circleRed
.setCursor(Cursor
.HAND
);
32 circleRed
.setOnMousePressed(circleOnMousePressedEventHandler
);
33 circleRed
.setOnMouseDragged(circleOnMouseDraggedEventHandler
);
35 Circle circleGreen
= new Circle(50.0, Color
.GREEN
);
36 circleGreen
.setCursor(Cursor
.MOVE
);
37 circleGreen
.setCenterX(150);
38 circleGreen
.setCenterY(150);
39 circleGreen
.setOnMousePressed(circleOnMousePressedEventHandler
);
40 circleGreen
.setOnMouseDragged(circleOnMouseDraggedEventHandler
);
42 Circle circleBlue
= new Circle(50.0, Color
.BLUE
);
43 circleBlue
.setCursor(Cursor
.CROSSHAIR
);
44 circleBlue
.setTranslateX(300);
45 circleBlue
.setTranslateY(100);
46 circleBlue
.setOnMousePressed(circleOnMousePressedEventHandler
);
47 circleBlue
.setOnMouseDragged(circleOnMouseDraggedEventHandler
);
49 Group root
= new Group();
50 root
.getChildren().addAll(circleRed
, circleGreen
, circleBlue
);
52 primaryStage
.setResizable(false);
53 primaryStage
.setScene(new Scene(root
, 400,350));
55 primaryStage
.setTitle("java-buddy");
59 public static void main(String
[] args
) {
63 private EventHandler
<MouseEvent
> circleOnMousePressedEventHandler
= new EventHandler
<MouseEvent
>() {
65 public void handle(MouseEvent t
) {
66 orgSceneX
= t
.getSceneX();
67 orgSceneY
= t
.getSceneY();
68 orgTranslateX
= ((Circle
)(t
.getSource())).getTranslateX();
69 orgTranslateY
= ((Circle
)(t
.getSource())).getTranslateY();
73 private EventHandler
<MouseEvent
> circleOnMouseDraggedEventHandler
= new EventHandler
<MouseEvent
>() {
75 public void handle(MouseEvent t
) {
76 double offsetX
= t
.getSceneX() - orgSceneX
;
77 double offsetY
= t
.getSceneY() - orgSceneY
;
78 double newTranslateX
= orgTranslateX
+ offsetX
;
79 double newTranslateY
= orgTranslateY
+ offsetY
;
81 ((Circle
)(t
.getSource())).setTranslateX(newTranslateX
);
82 ((Circle
)(t
.getSource())).setTranslateY(newTranslateY
);