2013-08-15 6 views
9

Mam następujący FXML:JavaFX i FXML: jak ustawić domyślny wybrany element w bloku wyboru w FXML?

<ChoiceBox> 
    <items> 
     <FXCollections fx:factory="observableArrayList"> 
      <String fx:value="2 minutes" /> 
      <String fx:value="5 minutes" /> 
      <String fx:value="15 minutes" /> 
     </FXCollections> 
    </items> 
</ChoiceBox> 

Ale w GUI to tylko pokazuje ChoiceBox z niewywiązania się z niczego. Chciałbym, aby pierwszy element na liście był domyślny, a do wyboru "zero" lub nic nie było zabronione.

Jak to zrobić?

Odpowiedz

11

Dodałem atrybut value do znacznika ChoiceBox, który zadziałał.

<ChoiceBox value="2 minutes"> 
    <items> 
     <FXCollections fx:factory="observableArrayList"> 
      <String fx:value="2 minutes" /> 
      <String fx:value="5 minutes" /> 
      <String fx:value="15 minutes" /> 
     </FXCollections> 
    </items> 
</ChoiceBox> 
+0

w imię uniknięcia zakodowanych wartości ciągów, czy istnieje sposób, w jaki mogę odwołać się do pola lub metody na kontrolerze, aby uzyskać tę wartość? Nie mogę użyć fx: constant, ponieważ będzie szukał tylko pól w klasie String i nie mogę (naprawdę) użyć składni wiązania, ponieważ to zostawiłoby właściwość związaną. – Groostav

0

Po pierwsze, należy zaimportować potrzebne model wartości, jak Crowell odpowiedzi, należy zaimportować tak w nagłówku fxml:

<?import javafx.collections.*?> 

Po drugie, jeśli chcesz na import własny model, importować po pierwsze, a następnie w ten sposób:

<?import com.zzg.mybatis.generator.model.*?> 
.... 

<ChoiceBox layoutX="24.0" layoutY="14.0" prefWidth="150.0"> 
     <items> 
      <FXCollections fx:factory="observableArrayList"> 
        <DatabaseDTO name="MySQL" value="1"></DatabaseDTO> 
        <DatabaseDTO name="Oracle" value="2"></DatabaseDTO> 
      </FXCollections> 
     </items> 
</ChoiceBox> 
+0

To wcale nie odpowiada na pytanie! Pytanie brzmiało, jak ustawić domyślną wartość, a nie jak importować i dołączać niestandardowe modele dowolnego rodzaju. – geisterfurz007