2017-05-20 2 views
1

J'ai créé le constructeur de scène à l'aide ChoiceBox 2.0 et attaché à IntelliJ Idea et ajouter ci-dessous le code pour ajouter l'article à ChoiceBox dans la classe principaleComment définir la largeur du menu contextuel pour correspondre boîte de choix

ChoiceBox genderBox = (ChoiceBox) scene.lookup("#gender"); 
genderBox.setItems(FXCollections.observableArrayList("Boy", "Girl")); 
genderBox.getSelectionModel().select(0); 

code boîte de choix de FXML est comme ci-dessous

<ChoiceBox id="gender" prefHeight="16.0" prefWidth="150.0" GridPane.columnIndex="1" GridPane.rowIndex="11"> 
      <GridPane.margin> 
       <Insets left="10.0" /> 
      </GridPane.margin> 
</ChoiceBox> 

Quoi qu'il en soit, lors de l'exécution de la classe principale, je vois la boîte de choix ci-dessous. La largeur de la zone de choix ne correspond pas à la largeur du menu contextuel (popup).

gender choice box

Comment définir une largeur dans le menu contextuel?

EDIT

réglage de la largeur Quoi qu'il en soit dans le menu contextuel dans zone de liste déroulante fonctionne bien. J'ai donc déménagé avec une combo. see example fxml.

Répondre

0

D'abord, la largeur ensemble de la ChoiceBox lui-même ...

<ChoiceBox prefWidth="150"> 
    ... 
</ChoiceBox> 

Ensuite, la largeur de la liste mis en pop-up via CSS ...

.choice-box .menu-item > .label { 
    -fx-pref-width: 100; 
} 

Note: la boîte est à peu près 50px plus large que la liste à cause du bouton déroulant.