2014-05-10 22 views
6

Desidero che tutti i miei componenti (campi di testo, etichette, ecc.) Rimangano al centro con dimensioni fisse. Lo sto facendo nel generatore di scene e funziona quando vedo l'anteprima, ma quando lo avvio, i componenti non rimangono al centro quando lo ridimensiono.JavaFX: mantenere tutti i componenti al centro anche durante il ridimensionamento di una finestra

Si prega di vedere la foto qui: file di http://postimg.org/image/r42kvvfbf/

FXML:

<AnchorPane id="AnchorPane" fx:id="root" maxHeight="-1.0" maxWidth="-1.0" minHeight="400.0" minWidth="600.0" prefHeight="-1.0" prefWidth="-1.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="myController"> 
    <children> 
    <GridPane alignment="CENTER" prefHeight="-1.0" prefWidth="-1.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> 
     <children> 
     <VBox alignment="CENTER_LEFT" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="-1.0" prefWidth="-1.0" spacing="10.0" GridPane.columnIndex="0" GridPane.rowIndex="0"> 
      <children> 
      <Label text="ID number" /> 
      <TextField fx:id="id" maxWidth="-Infinity" minWidth="-Infinity" prefWidth="210.0" promptText="" /> 
      <Label text="Password" /> 
      <TextField fx:id="password" maxWidth="-Infinity" minWidth="-Infinity" prefWidth="210.0" promptText="" /> 
      <HBox id="HBox" alignment="CENTER" spacing="5.0"> 
       <children> 
       <Button mnemonicParsing="false" onAction="#loginAction" text="Вход" textAlignment="CENTER" textOverrun="ELLIPSIS" /> 
       </children> 
      </HBox> 
      </children> 
      <padding> 
      <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" /> 
      </padding> 
     </VBox> 
     </children> 
     <columnConstraints> 
     <ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> 
     </columnConstraints> 
     <rowConstraints> 
     <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> 
     </rowConstraints> 
    </GridPane> 
    </children> 
</AnchorPane> 

Ho provato con StackPane e solo con VBox pure, ma non riesco a ottenere quello che voglio. Per favore aiuto!

+0

Il file FXML si comporta come come si desidera .. essere sicuro che non state manipolando lo stile di interfaccia utente in classe controller. Assicurati anche che la versione di JavaFX in Scene Builder e all'avvio sia la stessa. –

risposta

3

È RISOLTO. Forse questo potrebbe essere utile per gli altri.

Sembra che sto usando il gruppo come root per la mia scena. Come detto nella documentazione di JavaFX: "Se un gruppo viene usato come root, il contenuto del grafico della scena verrà troncato dalla larghezza e dall'altezza della scena e le modifiche alle dimensioni della scena (se l'utente ridimensiona lo stage) non altereranno il layout di il grafico della scena ".

Link: http://docs.oracle.com/javafx/2/api/javafx/scene/Scene.html

Problemi correlati