JavaFX Abstand zwischen AnchorPane und Labels in dem HBox halten

morry329

Mitglied
Hallo zusammen,

zwar muss ich einige Labels innerhalb Hbox ganz unten dem Leinwand/Fenster mit ausreichenden Abstände platzieren. Dies geht nicht so schön im Moment:

Bildschirmfoto 2023-11-24 um 21.20.19.png

Vielleicht kann jemand mir eine Hilfstellung geben, wie man die Texte mit genügen Abstände anzeigen lässt oder wie man das AnchorPane nach gaaaanz rechts in den Leinwand verschiebt? Hier mein Code:

Java:
@Override
    public void start(Stage stage) {
        BorderPane root = new BorderPane();
        //habe ich als Höhe 1000 eingetippt, sonst wird das Statusbar nicht angezeigt
        Scene scene = new Scene(root, WIDTH, 1000);

        // MenuBar gaaanz oben erstellen
        MenuBar menuBar = new MenuBar();
        Menu fileMenu = new Menu("File");
        MenuItem quitMenuItem = new MenuItem("Quit");
        fileMenu.getItems().add(quitMenuItem);
        menuBar.getMenus().add(fileMenu);

        root.setTop(menuBar);

        // HBox für das Statusbar gaanz unten erstellen
        HBox statusBar = new HBox();
        Label label1 = new Label("XX");
        Label label2 = new Label("x");
        Label label3 = new Label("YY");
        Label label4 = new Label("Real:");
        Label label5 = new Label("no value");
        Label label6 = new Label("Imag:");
        Label label7 = new Label("no value");

        HBox.setHgrow(statusBar, Priority.ALWAYS);
        statusBar.setSpacing(5);
        statusBar.getChildren().addAll(label1, label2, label3, label4, label5, label6, label7);
      
        AnchorPane anchorPane = new AnchorPane();
        HBox.setHgrow(anchorPane, Priority.ALWAYS);
        statusBar.getChildren().add(anchorPane);

        Label label8 = new Label("Progress: ");
        Label label9 = new Label("no value");
        //anchorPane.setSpacing(5); <---- es wirft den Fehler
        anchorPane.getChildren().addAll(label8, label9);

        root.setBottom(statusBar);

        //Mandelbrot anzeigen/ausgeben
        Image mandelbrotImage = createMandelbrotImage();
        ImageView imageView = new ImageView(mandelbrotImage);

        root.setCenter(imageView);

        stage.setTitle("Mandelbrot Canvas");
        stage.setScene(scene);
        stage.show();
        stage.setOnCloseRequest(we -> System.out.println("zu"));
    }
 
Ok, mithilfe einem Bekannter eine Lösung gefunden . Ich schreibe sie hier zur Info für die Community-Mitglied hier.

Java:
 @Override
    public void start(Stage stage) {
        BorderPane root = new BorderPane();
        Scene scene = new Scene(root, WIDTH, 1000);

        MenuBar menuBar = new MenuBar();
        Menu fileMenu = new Menu("File");
        MenuItem quitMenuItem = new MenuItem("Quit");
        fileMenu.getItems().add(quitMenuItem);
        menuBar.getMenus().add(fileMenu);

        root.setTop(menuBar);

        HBox statusBar = new HBox();
        Label label1 = new Label("XX");
        label1.setPadding(new Insets(0, 10, 0, 0));
        Label label2 = new Label("x");
        Label label3 = new Label("YY");
        Label label4 = new Label("Real:");
        label4.setPadding(new Insets(0, 10, 0, 0));
        Label label5 = new Label("no value");
        label5.setPadding(new Insets(0, 10, 0, 0));
        Label label6 = new Label("Imag:");
        label6.setPadding(new Insets(0, 10, 0, 0));
        Label label7 = new Label("no value");
        label7.setPadding(new Insets(0, 10, 0, 0));

        HBox.setHgrow(statusBar, Priority.ALWAYS);
        statusBar.setSpacing(5);
        statusBar.getChildren().addAll(label1, label2, label3, label4, label5, label6, label7);

        AnchorPane anchorPane = new AnchorPane();
        HBox.setHgrow(anchorPane, Priority.ALWAYS);
        statusBar.getChildren().add(anchorPane);

        Label label8 = new Label("Progress: ");
        Label label9 = new Label("no value");
        
        /*die Zeile 41 und 42 sind die gefundene Lösung:
        Anchorpane haltet den Abstand einfach mittels setRightAnchor*/
        
        AnchorPane.setRightAnchor(label8, 80.0);
        AnchorPane.setRightAnchor(label9, 25.0);
        anchorPane.getChildren().addAll(label8, label9);

        root.setBottom(statusBar);
        Image mandelbrotImage = createMandelbrotImage();
        ImageView imageView = new ImageView(mandelbrotImage);

        root.setCenter(imageView);

        stage.setTitle("Mandelbrot Canvas");
        stage.setScene(scene);
        stage.show();
        stage.setOnCloseRequest(we -> System.out.println("Closing application!"));
    }
 

Neue Themen


Zurück
Oben