package drag;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class Main2 extends Application {
Rectangle rec;
double orgSceneX, orgSceneY;
double orgTranslateX, orgTranslateY;
Thread thread;
@Override
public void start(Stage primaryStage) {
rec = new Rectangle(40,40,Color.ORANGE);
rec.setOnMousePressed(circleOnMousePressedEventHandler);
rec.setOnMouseDragged(circleOnMouseDraggedEventHandler);
Pane pane = new Pane();
pane.getChildren().addAll(rec);
primaryStage.setResizable(false);
Scene sc = new Scene(pane, 800,800);
primaryStage.setScene(sc);
sc.setOnKeyPressed(new EventHandler<KeyEvent>(){
@Override
public void handle(KeyEvent event){
System.out.println("test");
double altX = rec.getTranslateX();
double altY = rec.getTranslateY();
if(event.getCode() ==KeyCode.RIGHT){
double newX = altX +10;
rec.setTranslateX(newX);
}
else if(event.getCode() ==KeyCode.LEFT){
double newX = altX -10;
rec.setTranslateX(newX);
}
else if(event.getCode() ==KeyCode.DOWN){
double newY = altY +10;
rec.setTranslateY(newY);
}
else if(event.getCode() ==KeyCode.UP){
double newY = altY -100;
rec.setTranslateY(newY);
}
}
} );
primaryStage.setTitle("java-buddy");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
EventHandler<MouseEvent> circleOnMousePressedEventHandler =
new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent t) {
orgSceneX = t.getSceneX();
orgSceneY = t.getSceneY();
orgTranslateX = ((Rectangle)(t.getSource())).getTranslateX();
orgTranslateY = ((Rectangle)(t.getSource())).getTranslateY();
}
};
EventHandler<MouseEvent> circleOnMouseDraggedEventHandler =
new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent t) {
double offsetX = t.getSceneX() - orgSceneX;
double offsetY = t.getSceneY() - orgSceneY;
double newTranslateX = orgTranslateX + offsetX;
double newTranslateY = orgTranslateY + offsetY;
((Rectangle)(t.getSource())).setTranslateX(newTranslateX);
((Rectangle)(t.getSource())).setTranslateY(newTranslateY);
}
};
}