2012-03-14 30 views
6

Tôi có ứng dụng JavaFX sử dụng FXML để xây dựng GUI của nó.Xem trước danh sách xem trước trong một ứng dụng với FXML

Khi ứng dụng này được khởi chạy, tôi cần có ListView, có một số giá trị được tải, ví dụ, từ cơ sở dữ liệu. Vì vậy, làm thế nào tôi có thể làm điều này?

Tôi biết cách tạo ứng dụng, sẽ tải các mục vào ListView sau khi người dùng nhấp vào một nút hoặc một cái gì đó như thế này (thuộc tính "onAction" trong FXML). Nhưng điều này không bộ tôi như tôi cần các mục được nạp automaticaly vào ListView.

Trả lời

8

Nếu bạn đã fxml với Controller, như sau:

<AnchorPane xmlns:fx="http://javafx.com/fxml" fx:controller="test.Sample"> 
    <children> 
     <ListView fx:id="listView"/> 
    </children> 
</AnchorPane> 

bạn chỉ có thể thực hiện Initializable trong điều khiển của bạn:

public class Sample implements Initializable { 
    @FXML 
    private ListView listView; 

    @Override 
    public void initialize(URL url, ResourceBundle rb) { 
     // change next line to DB load 
     List<String> values = Arrays.asList("one", "two", "three"); 

     listView.setItems(FXCollections.observableList(values)); 

    } 
} 
14

này lấp đầy choicebox tôi với năm mức độ truyền được xác định trước. Tôi giả sử nếu bạn cố gắng thêm các mục từ bộ điều khiển của bạn, danh sách chỉ hiển thị các giá trị đó (chưa được kiểm tra).

<ChoiceBox fx:id="baudRates" layoutX="234.0" layoutY="72.0"> 
    <items> 
     <FXCollections fx:factory="observableArrayList"> 
      <String fx:value="4800" /> 
      <String fx:value="9600" /> 
      <String fx:value="19200" /> 
      <String fx:value="57600" /> 
      <String fx:value="115200" /> 
     </FXCollections> 
    </items> 
</ChoiceBox> 

Bạn cũng cần phải bao gồm báo cáo kết quả nhập khẩu sau trong FXML của bạn:

<?import javafx.collections.*?> 
+4

trình, nhưng đừng quên để thêm báo cáo nhập khẩu cần thiết để phía trên cùng của tập tin FXML của bạn; như '' –

+0

Làm thế nào bạn có thể cung cấp một nhà máy tùy chỉnh? – crush

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