JavaFX Component Größe an Inhalt anpassen

Guten Morgen/Mittag/Abend,
ich wollte mal fragen, wie man z.B. bei einem Pane die Größe, je nach Inhalt, anpassen kann.
Wenn z.B. ein Button, mit einer Höhe von 30px, hinzugefügt wird, dass das Pane sich automatisch um 30px erweitert.

Meine aktuelle Lösung sieht so aus:

Java:
Button button = new Button("Button");
button.setLayoutY(i*30);
button.setFocusTraversable(false);
pane.getChildren().add(button);
pane.setPrefHeight(pane.getPrefHeight()+28);

Doch bei dieser Variante muss ich aktuell via Trail and Error einen vernünftigen Wert finden, der passt.
Da muss es doch bestimmt eine bessere Methode geben.

Mein eigentliches Ziel ist, mein Ziel aus diesem Beitrag, von Swing auf JavaFX zu übertragen, also das man mehrere Componenten untereinander dynamisch anlegen kann und dann mit Hilfe eines ScrollPane`s durchscrollen kann.

keksdose132.
 
Zuletzt bearbeitet:
Okay, ich habe das ganze jetzt mit einer ListView, für die vertikale Teilung, und mehreren HBox'en, für die horizontale Unterteilung, gemacht.

Java:
for(int i=0; i<150; i++) {
    Button button = new Button("Update");
    TextField field = new TextField();
          
    HBox box = new HBox();
    box.getChildren().add(button);
    box.getChildren().add(field);

    list.getItems().add(box);
}
Danke für die Tipps!
keksdose132.
 
Okay, eine Frage hätte ich doch noch dazu.
Wenn ich die Komponenten in die HBox packe, dann werden diese immer am oberen Rand ausgerichtet, was dazu führt das die Labels etwas höher sind als z.B. die Buttons und TextFields.

12287

Wie kann ich die Komponenten mittig (vertikal) ausrichten?
 
Okay, eine Frage hätte ich doch noch dazu.
Wenn ich die Komponenten in die HBox packe, dann werden diese immer am oberen Rand ausgerichtet, was dazu führt das die Labels etwas höher sind als z.B. die Buttons und TextFields.

Anhang anzeigen 12287

Wie kann ich die Komponenten mittig (vertikal) ausrichten?
Du könntest wahrscheinlich es so machen wenn du die HBox zentrierst

Code:
new HBox().setAlignment(Pos.CENTER_LEFT);
 
Du willst nicht mittig, sondern auf der Grundlinie ausrichten. Dazu setzt Du die alignment-Property der HBox auf javafx.geometry.Pos.BASELINE_LEFT
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben