JavaFX Component Größe an Inhalt anpassen

Diskutiere Component Größe an Inhalt anpassen im AWT, Swing, JavaFX & SWT Bereich.
K

keksdose132

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:
Robat

Robat

Ehm .. wieso nicht einfach eine ListView oder TableView nutzen? Man muss das Rad ja nicht neu erfinden.
 
K

keksdose132

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.
 
K

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?
 
L

lam_tr

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);
 
mihe7

mihe7

Du willst nicht mittig, sondern auf der Grundlinie ausrichten. Dazu setzt Du die alignment-Property der HBox auf javafx.geometry.Pos.BASELINE_LEFT
 
Thema: 

Component Größe an Inhalt anpassen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben