2014-09-15 10 views
5

Ho una GridPane in fxml che ha un titolo di testo e 4 pulsanti. Il GridPane stesso è allineato al centro, ma tutti i pulsanti sono allineati a sinistra all'interno della colonna della griglia. So come modificare l'allineamento degli oggetti usando il codice Java, ma questa non è la situazione ideale, perché vorrei che tutti gli stili venissero gestiti usando FXML e CSS. Qualcuno può suggerire il modo migliore per centrare gli elementi di allineamento di una cella in una vista GridPane di JavaFX?Center Align Righe di una GridPane in JavaFX

risposta

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

è necessario allineare ogni oggetto del GridPane individualmente, non il GridPane stesso.

Per eseguire questa operazione, andare su Layout: Nome oggetto (esempio pulsante) e in HAlignment selezionare CENTRO.

11

Per impostare un figlio di GridPane allineato al centro, è necessario impostare Halignment e Valignment del nodo figlio.

Nel codice Java che si può fare qualcosa di simile a:

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

In FMXL è possibile ottenere un effetto simile da:

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

C'è un modo più semplice per raggiungere questo obiettivo se si vuole allinea tutti i nodi di una particolare colonna o riga per essere allineati nello stesso ordine. Invece di aggiungere un halignment/valignment al nodo, è possibile creare un ColumnConstraints o un RowConstraints e aggiungerli a GridPane.

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

È possibile aggiungere in modo simile RowConstraints pure.

Problemi correlati