2014-09-15 15 views
5

Ich habe eine GridPane in fxml, die einen Texttitel und 4 Tasten hat. Das GridPane selbst ist zentriert, aber alle Schaltflächen sind innerhalb der Spalte des Rasters ausgerichtet. Ich weiß, wie man die Ausrichtung der Elemente mit Java-Code ändert, aber dies ist nicht die ideale Situation, da ich möchte, dass alle Stile mit FXML und CSS behandelt werden. Kann jemand vorschlagen, wie Elemente einer Zelle in einer GridPane-Ansicht von JavaFX zentriert werden?Center Align Zeilen eines GridPane in JavaFX

Antwort

3

In FXML:

<GridPane ...> 
    <columnConstraints> 

    <!-- one of these for each column: you can obviously have other properties set here if needed --> 
    <ColumnConstraints halignment="CENTER" /> 

    </columnConstraints> 
</GridPane> 
0

Sie müssen jedes Objekt in der GridPane individuell auszurichten, nicht der GridPane selbst.

Um dies zu tun, gehen Sie yo Layout: Objektname (zB Button), und bei HAignment wählen Sie CENTER.

11

Um ein untergeordnetes Element von GridPane an der Mitte auszurichten, müssen Sie Halignment und Valignment des untergeordneten Knotens festlegen.

In Java Code, den Sie etwas ähnliches tun:

GridPane.setHalignment(node, HPos.CENTER); // To align horizontally in the cell 
GridPane.setValignment(node, VPos.CENTER); // To align vertically in the cell 

In FMXL Sie einen ähnlichen Effekt durch erzielen können:

<GridPane> 
     ... // other properties 
    <children> 
     <Button mnemonicParsing="false" text="Button" GridPane.halignment="CENTER" GridPane.valignment="CENTER" /> 
    </children> 
</GridPane> 

einen einfacheren Weg gibt es, dies zu erreichen, wenn Sie wollen Richten Sie alle Knoten einer bestimmten Spalte oder Zeile so aus, dass sie in derselben Reihenfolge ausgerichtet werden. Anstatt dem Knoten einen halignment/valignment hinzuzufügen, können Sie einen ColumnConstraints oder einen RowConstraints erstellen und sie dem GridPane hinzufügen.

<GridPane> 
    <columnConstraints> 
     <ColumnConstraints hgrow="SOMETIMES" halignment="CENTER" minWidth="10.0" prefWidth="100.0" /> 
     ... // More constraints for other columns 
    </columnConstraints> 
    <children> 
     <Button mnemonicParsing="false" text="Button" /> 
    </children> 
</GridPane> 

Sie können auch RowConstraints hinzufügen.

Verwandte Themen