Hallo liebe Community, ich habe ein kleines Problem:
Ich möchte in JavaFX in meiner Scene mittig ein großes, quadratisches Bild mit ImageView anzeigen. Dafür habe ich den ImageView in die Mitte eines BoderPanes gesetzt. Mein Gedanke war, dass das Bild automatisch kleiner wird, wenn rechts links und unten auch Elemente (Buttons und Shapes) eingesetzt werden, aber leider überdeckt der ImageView alle Flächen, selbst wenn ich neue einfüge.
Es gibt auch scheinbar leider keine extra Height und Width Properties vom CENTER des BorderPanes.
Hat jemand von euch vielleicht eine Idee wie ich das Problem lösen kann?
So in etwa stelle ich mir das Fenster so vor (ohne die Scrollbalken und den Text in der Mitte)
So sieht mein Code aus (ich weiß,ist nicht gerade sauber, aber ich bin erst noch am raufinden, wie das Problem zu lösen ist :
Viele Grüße und vielen Dank schon einmal im Voraus
Tobi
Ich möchte in JavaFX in meiner Scene mittig ein großes, quadratisches Bild mit ImageView anzeigen. Dafür habe ich den ImageView in die Mitte eines BoderPanes gesetzt. Mein Gedanke war, dass das Bild automatisch kleiner wird, wenn rechts links und unten auch Elemente (Buttons und Shapes) eingesetzt werden, aber leider überdeckt der ImageView alle Flächen, selbst wenn ich neue einfüge.
Es gibt auch scheinbar leider keine extra Height und Width Properties vom CENTER des BorderPanes.
Hat jemand von euch vielleicht eine Idee wie ich das Problem lösen kann?
So in etwa stelle ich mir das Fenster so vor (ohne die Scrollbalken und den Text in der Mitte)
So sieht mein Code aus (ich weiß,ist nicht gerade sauber, aber ich bin erst noch am raufinden, wie das Problem zu lösen ist :
Java:
primaryStage.setTitle("RoboRally");
primaryStage.setAlwaysOnTop(true);
primaryStage.setHeight(800);
primaryStage.setWidth(1200);
primaryStage.setResizable(false);
mainLayout = new BorderPane();
gameBoardLayout = new StackPane();
gameBoardFieldsLayout = new GridPane();
leftElementsLayout = new VBox();
rightElementsLayout = new VBox();
cardDeckLayout = new HBox();
Image imageCard = new Image("file:pictures/movementcards/picture.jpg");
ImagePattern cardImagePattern = new ImagePattern(imageCard);
Rectangle cardRectangle = new Rectangle(imageCard.getWidth(),imageCard.getHeight());
cardRectangle.setScaleX(0.1);
cardRectangle.setScaleY(0.1);
cardRectangle.setFill(cardImagePattern);
cardRectangle.setX(500);
cardRectangle.setY(400);
Button buttonNextPlayer = new Button("Next Player");
statusBar = new Label("StatusBar");
Image image = new Image("file:pictures/boardmaps/board.png");
ImageView imageView = new ImageView(image);
imageView.setFitHeight(primaryStage.getHeight()-300);
imageView.setFitWidth(primaryStage.getWidth()-300);
imageView.setPreserveRatio(true);
//Rectangle2D viewportRect = new Rectangle2D(0, 0, image.getWidth(), image.getHeight());
//imageView.setViewport(viewportRect);
gameBoardLayout.getChildren().add(imageView);
cardDeckLayout.getChildren().add(cardRectangle);
rightElementsLayout.getChildren().add(buttonNextPlayer);
mainLayout.setCenter(gameBoardLayout);
mainLayout.setLeft(leftElementsLayout);
mainLayout.setRight(rightElementsLayout);
mainLayout.setBottom(cardDeckLayout);
gameBoardLayout.getChildren().add(gameBoardFieldsLayout);
Scene primaryScene = new Scene(mainLayout);
primaryScene.getStylesheets().add(getClass().getResource("styles.css").toExternalForm());
primaryStage.setScene(primaryScene);
primaryStage.show();
Viele Grüße und vielen Dank schon einmal im Voraus
Tobi