Skip to content

Instantly share code, notes, and snippets.

@baalajimaestro
Last active December 7, 2018 20:12
Show Gist options
  • Save baalajimaestro/f5bae685eaa5e551377ce45cb2c40552 to your computer and use it in GitHub Desktop.
Save baalajimaestro/f5bae685eaa5e551377ce45cb2c40552 to your computer and use it in GitHub Desktop.
Can't invert y axis on javafx at all. :/
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Cursor;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.chart.LineChart;
import javafx.scene.input.MouseEvent;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;
import javafx.scene.chart.NumberAxis;
public class JavaFX_DrawSomething extends Application {
double orgSceneX, orgSceneY;
double orgTranslateX, orgTranslateY;
ImageView imageView0;
ImageView imageView2;
ImageView imageView3;
ImageView imageView4;
Image imagex;
NumberAxis yAxis;
NumberAxis xAxis;
Image imagey;
String files[];
LineChart<Number,Number> lineChart;
Group root;
@Override
public void start(Stage primaryStage) throws FileNotFoundException
{
Rectangle rect0 = new Rectangle(150, 50, 100, 150);
rect0.setFill(Color.TRANSPARENT);
rect0.setStroke(Color.BLACK);
Rectangle rect1 = new Rectangle(250, 50,100, 150);
rect1.setFill(Color.TRANSPARENT);
rect1.setStroke(Color.BLACK);
Rectangle rect2 = new Rectangle(350, 50,100, 150);
rect2.setFill(Color.TRANSPARENT);
rect2.setStroke(Color.BLACK);
Rectangle rect3 = new Rectangle(150, 200,100, 150);
rect3.setFill(Color.TRANSPARENT);
rect3.setStroke(Color.BLACK);
Rectangle rect4 = new Rectangle(250, 200,100, 150);
rect4.setFill(Color.TRANSPARENT);
rect4.setStroke(Color.BLACK);
Rectangle rect5 = new Rectangle(350, 200, 100,150);
rect5.setFill(Color.TRANSPARENT);
rect5.setStroke(Color.BLACK);
Rectangle rect6 = new Rectangle(150, 350,100, 150);
rect6.setFill(Color.TRANSPARENT);
rect6.setStroke(Color.BLACK);
Rectangle rect7 = new Rectangle(250, 350,100, 150);
rect7.setFill(Color.TRANSPARENT);
rect7.setStroke(Color.BLACK);
Rectangle rect8 = new Rectangle(350, 350, 100,150);
rect8.setFill(Color.TRANSPARENT);
rect8.setStroke(Color.BLACK);
imagex = new Image(new FileInputStream("/Users/baalajimaestro/Downloads/Lol/img1.png"));
Image image = new Image(new FileInputStream("/Users/baalajimaestro/Downloads/Lol/blank.jpg"));
imageView0 = new ImageView(imagex);
imageView4 = new ImageView(image);
imageView4.setX(0);
imageView4.setY(0);
imageView4.setFitHeight(150);
imageView4.setFitWidth(100);
imageView4.setCursor(Cursor.HAND);
imageView4.setOnMouseDragged(circleOnMouseDraggedEventHandler);
imageView0.setX(500);
imageView0.setY(3);
imageView0.setFitHeight(150);
imageView0.setFitWidth(100);
imageView0.setCursor(Cursor.HAND);
imageView0.setOnMouseDragged(circleOnMouseDraggedEventHandler);
imagey = new Image(new FileInputStream("/Users/baalajimaestro/Downloads/Lol/img2.png"));
imageView2 = new ImageView(imagey);
imageView3 = new ImageView(image);
imageView2.setX(500);
imageView2.setY(200);
iggggg=new Image(new FileInputStream("/Users/baalajimaestro/Downloads/tester_ruler.jpg"))
ImageView ruler = new ImageView(iggggg);
ruler.setX(10);
ruler.setY(10);
igg=new Image(new FileInputStream("/Users/baalajimaestro/Downloads/tester_ruler_2.jpg"))
ImageView ruler1 = new ImageView(igg);
ruler1.setX(10);
ruler1.setY(10);
imageView2.setFitHeight(150);
imageView2.setFitWidth(100);
imageView3.setX(0);
imageView3.setY(0);
imageView3.setFitHeight(150);
imageView3.setFitWidth(100);
imageView2.setCursor(Cursor.HAND);
imageView2.setOnMouseDragged(circleOnMouseDraggedEventHandler);
yAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis) {
@Override
public String toString(Number value) {
// note we are printing minus value
return String.format("%7.1f", -value.doubleValue());
}
});
root = new Group();
root.getChildren().addAll(imageView0,imageView2,rect0,rect1,rect2,rect3,rect4,rect5,rect6,rect7,rect8,ruler,ruler1);
primaryStage.setResizable(false);
primaryStage.setScene(new Scene(root,900,1000));
primaryStage.setTitle(":)");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
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;
////////////For logging & testing purpose
//////////////////////// System.out.println(newTranslateX+" "+newTranslateY);
if(t.getSource()==imageView0)
{
imageView3 = new ImageView(imagex);
imageView3.setX(500);
imageView3.setY(3);
imageView3.setFitHeight(150);
imageView3.setFitWidth(100);
imageView3.setCursor(Cursor.HAND);
imageView3.setOnMouseDragged(circleOnMouseDraggedEventHandler);
root.getChildren().addAll(imageView3);
imageView0.setX(newTranslateX);
imageView0.setY(newTranslateY);
}
if(t.getSource()==imageView3)
{
imageView3.setX(newTranslateX);
imageView3.setY(newTranslateY);
}
if(t.getSource()==imageView4)
{
imageView4.setX(newTranslateX);
imageView4.setY(newTranslateY);
}
if(t.getSource()==imageView2)
{
imageView4 = new ImageView(imagey);
imageView4.setX(500);
imageView4.setY(200);
imageView4.setFitHeight(150);
imageView4.setFitWidth(100);
imageView4.setCursor(Cursor.HAND);
imageView4.setOnMouseDragged(circleOnMouseDraggedEventHandler);
root.getChildren().addAll(imageView4);
imageView2.setX(newTranslateX);
imageView2.setY(newTranslateY);
}
}
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment