2012-07-27 78 views
16

Làm cách nào để đặt giá trị mặc định trong ComboBox bằng FXML?ComboBox FXML giá trị mặc định

<ComboBox fx:id="cbo_Bacteriologie_Aesculine" prefHeight="21.0" prefWidth="105.0" GridPane.columnIndex="1" GridPane.rowIndex="0"> 
    <items> 
     <FXCollections fx:factory="observableArrayList"> 
      <String fx:value="NVT" /> 
      <String fx:value="Bezig" /> 
      <String fx:value="Positief" /> 
      <String fx:value="Negatief" /> 
     </FXCollections> 
    </items> 
</ComboBox> 

Tôi muốn NVT được chọn theo mặc định. Tôi đã thử thêm selected="selected" và như vậy nhưng dường như không tìm thấy cú pháp đúng.

Có thể chỉnh sửa các mục được liệt kê bằng Trình tạo cảnh không? Tôi dường như không thể tìm thấy nó.

Trả lời

37

Sử dụng này:

<ComboBox> 
    <items> 
     <FXCollections fx:factory="observableArrayList"> 
      <String fx:value="NVT" /> 
      <String fx:value="Bezig" /> 
      <String fx:value="Positief" /> 
      <String fx:value="Negatief" /> 
     </FXCollections> 
    </items> 
    <value> 
     <String fx:value="NVT" /> 
    </value> 
</ComboBox> 
+6

'' hoạt động quá và trông sạch hơn. – T3rm1

+0

Cung cấp 'javafx.fxml.LoadException: Chuỗi không phải là một loại hợp lệ.' – Bopsi

+0

@BappadityaSasmal bạn cần phải nhập chuỗi Lớp. '' – UnKnown

8

Tôi không nghĩ rằng điều đó có thể xảy ra trong FXML. Bạn sẽ cần phải làm điều đó trong việc khởi tạo thành phần, trong bộ điều khiển, ví dụ bằng cách sử dụng dòng sau cbo_Bacteriologie_Aesculine.getSelectionModel().setSelectedIndex(1); để chọn phần tử Bezig.

Nhưng nếu bạn tìm cách để làm điều đó trong FXML, tôi quan tâm.

EDIT: Có thể trong FXML. Bạn có thể thấy nó trong câu trả lời của Guedolino (https://stackoverflow.com/a/14436371/1344424), điều này sẽ trở thành câu trả lời đúng cho câu hỏi này.

+1

sao tôi đã sử dụng đoạn mã sau 'cbo_Bacteriologie_Aesculine.getSelectionModel() selectFirst(); 'và nó làm các trick.. Tôi hy vọng sẽ có hỗ trợ để xử lý điều này trong FXML :) – Perneel

6

tôi nhận được một lỗi lạ với phương pháp đề nghị đầu tiên

setSelectedItem (T) đã bảo vệ truy cập trong SelectionModel nơi T là một loại biến: T extends Object khai báo trong lớp SelectionModel

Đối với tôi

getSelectionModel().select("NVT"); 

làm việc như một sự quyến rũ.

Các vấn đề liên quan