我有使用FXML構建GUI的JavaFX應用程序。在FXML應用程序中預填ListView
當這個應用程序啓動時,我需要有ListView,其中有一些值加載,例如,從數據庫。那麼,我該怎麼做?
我知道如何製作應用程序,它在用戶單擊按鈕之後將項目加載到ListView,或類似的東西(FXML中的「onAction」屬性)。但是這並不適合我,因爲我需要將項目自動加載到ListView。
我有使用FXML構建GUI的JavaFX應用程序。在FXML應用程序中預填ListView
當這個應用程序啓動時,我需要有ListView,其中有一些值加載,例如,從數據庫。那麼,我該怎麼做?
我知道如何製作應用程序,它在用戶單擊按鈕之後將項目加載到ListView,或類似的東西(FXML中的「onAction」屬性)。但是這並不適合我,因爲我需要將項目自動加載到ListView。
如果您有控制器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));
}
}
這充溢着我的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.*?>
工作,但不要忘了必要的import語句添加到您的FXML文件的頂部;像'<?import javafx.collections。*?>' – 2012-11-25 15:42:27
如何提供自定義工廠? – crush 2014-12-22 02:31:55