2017-01-14 46 views
1

我有一個HBox中與建立兒童如下:如何對齊孩子們在HBox中左,中,右

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

這將創建一個HBox中與漂浮在左邊的所有兒童。我想leftLabel在左邊,centerlabel在中心,rightContent到最右端。

我該如何做到這一點?

謝謝大家提前。

+0

'Hbox'(Horizo​​ntal Box)這可能不是您需要的佈局 –

回答

4

您可以使用下面的訣竅:

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(); 
    } 
} 

正如你可以看到我再補充幾個Region控件填充空間標籤之間,並設置Hgrow屬性ALWAYS。因爲有時如果要對齊的ToolBar按鈕內不能使用其他佈局即

enter image description here

這招在某些情況下,適當的。

+0

謝謝@Maxim Dobryakov。 –