2016-11-07 11 views
0

GridPaneに1行を水平方向に中央に配置したいとします。私は水平に列(root.getColumnConstraints().get(0).setHalignment(HPos.CENTER);)を中央に置く方法を知っていますが、私は行のためのこのメソッドを見つけることができません。列のHalignmentプロパティと行のValignmentプロパティのみを変更できます。しかし、私が必要とするのは、存在しない行のHalignmentです。だから私はこれをどのようにすることができますか?GridPaneの横方向の中心JAVAFX

This is what I want at the end

+0

可能な重複 - どのように中心要素に](http://stackoverflow.com/questions/12816075/javafx-gridpane-how-to-center-elements) – ItamarG3

答えて

0

これは、行全体のために使用して制約にこれを実行することはできませんが、あなたはColumnConstraintsよりも優先されますGridPane.setHalignmentを使用して、行のすべてのNode Sにプロパティを設定することができます。あなたはまた、ノードの後に​​これを行うことができます

@Override 
public void start(Stage primaryStage) { 
    Text text00 = new Text("text"); 
    Text text01 = new Text("text"); 
    Text text02 = new Text("text"); 
    Text text10 = new Text("text"); 
    Text text11 = new Text("text"); 
    Text text12 = new Text("text"); 
    GridPane gridPane = new GridPane(); 

    ColumnConstraints cConstraints = new ColumnConstraints(); 
    cConstraints.setHalignment(HPos.LEFT); 
    cConstraints.setHgrow(Priority.ALWAYS); 
    gridPane.getColumnConstraints().addAll(cConstraints, cConstraints); 
    gridPane.addColumn(0, text00, text01, text02); 
    gridPane.addColumn(1, text10, text11, text12); 

    GridPane.setHalignment(text11, HPos.CENTER); 
    GridPane.setHalignment(text01, HPos.CENTER); 

    Scene scene = new Scene(gridPane); 

    primaryStage.setScene(scene); 
    primaryStage.show(); 
} 

注意が子供を反復処理によりGridPaneに追加されました。

int alignRow = 1; 
for (Node n : gridPane.getChildren()) { 
    Integer row = GridPane.getRowIndex(n); 
    int rowNumber = row == null ? 0 : rowNumber.intValue(); 
    if (rowNumber = alignRow) { 
     GridPane.setHalignment(n, HPos.CENTER); 
    } 
} 
[JavaFXのGridPaneの
関連する問題