2017-01-14 7 views
1

Ich habe einen HBox mit Kindern setzen sich wie folgt zusammen:Wie auszurichten Kinder in einer HBox Links, Mitte und Rechts

HBox h = new HBox(); 
h.setMinWidth(555); 

Label leftLabel = new Label("Left"); 
Label centerLabel = new Label("Center"); 

HBox rightContent = new HBox(); 
Label r1 = new Label("2"); 
Label r2 = new Label("3"); 

rightContent.getChildren().addAll(r1, r2); 
h.getChildren().addAll(leftLabel, centerLabel, rightContent); 

Dies wird eine HBox mit allen Kindern auf der linken Seite schwebte erstellen. Ich möchte leftLabel auf der linken Seite sein, centerLabel in der Mitte, und rightContent auf der rechten Seite.

Wie kann ich das erreichen?

Vielen Dank im Voraus.

+0

'Hbox' (Horizontale Box) Dies ist möglicherweise nicht das Layout, das Sie brauchen –

Antwort

4

können Sie den folgenden Trick verwenden:

import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.control.Label; 
import javafx.scene.layout.HBox; 
import javafx.scene.layout.Priority; 
import javafx.scene.layout.Region; 
import javafx.stage.Stage; 


public class Main23 extends Application { 

    @Override 
    public void start(Stage primaryStage) throws Exception { 
     Label label1 = new Label("Left"); 
     label1.setStyle("-fx-background-color: red; -fx-text-fill: white;"); 

     Label label2 = new Label("Center"); 
     label2.setStyle("-fx-background-color: green; -fx-text-fill: white;"); 

     Label label3 = new Label("Right"); 
     label3.setStyle("-fx-background-color: blue; -fx-text-fill: white;"); 

     Region region1 = new Region(); 
     HBox.setHgrow(region1, Priority.ALWAYS); 

     Region region2 = new Region(); 
     HBox.setHgrow(region2, Priority.ALWAYS); 

     HBox hBox = new HBox(label1, region1, label2, region2, label3); 

     primaryStage.setScene(new Scene(hBox, 640, 240)); 
     primaryStage.show(); 
    } 
} 

Wie Sie ich nur hinzufügen, mehrere Region Kontrollen für Füllraum zwischen den Etiketten und legen Hgrow Eigenschaft auf ALWAYS sehen können.

enter image description here

Dieser Trick ist in einigen Fällen nicht geeignet, weil manchmal Sie nicht andere Layouts verwenden können, das heißt, wenn Sie Tasten innerhalb von ToolBar ausrichten möchten.

+0

Vielen Dank @Maxim Dobryakov. –

Verwandte Themen