2012-03-14 30 views
6

我有使用FXML構建GUI的JavaFX應用程序。在FXML應用程序中預填ListView

當這個應用程序啓動時,我需要有ListView,其中有一些值加載,例如,從數據庫。那麼,我該怎麼做?

我知道如何製作應用程序,它在用戶單擊按鈕之後將項目加載到ListView,或類似的東西(FXML中的「onAction」屬性)。但是這並不適合我,因爲我需要將項目自動加載到ListView。

回答

8

如果您有控制器FXML,旁邊似:

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

你可以實現Initializable在你的控制器:

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

這充溢着我的choicebox與五個預定波特率。我假設如果你嘗試從你的控制器添加項目,列表只顯示這些值(未經測試)。

<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> 

您還需要在您的FXML以下import語句:

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

工作,但不要忘了必要的import語句添加到您的FXML文件的頂部;像'<?import javafx.collections。*?>' – 2012-11-25 15:42:27

+0

如何提供自定義工廠? – crush 2014-12-22 02:31:55

相關問題