我有使用 FXML 构建其 GUI 的 JavaFX 应用程序。
当这个应用程序启动时,我需要 ListView,它加载了一些值,例如,从数据库中加载。那么,我该怎么做呢?
我知道如何制作应用程序,在用户单击按钮后将项目加载到 ListView,或者类似的东西(FXML 中的“onAction”属性)。但这不适合我,因为我需要将项目自动加载到 ListView。
这用五个预定的波特率填充了我的选择框。我假设如果您尝试从控制器添加项目,该列表仅显示这些值(未经测试)。
<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 javafx.collections.*?>
如果您有带控制器的 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));
}
}