javafx-2 - JavaFX/如何在启动时加载/填充值?

标签 javafx-2 javafx

我今天才开始使用 JavaFX 并且已经需要一些建议。我加载了 applicaton.fxml (使用 Oracle SceneBuiler 创建)在 start(Stage ...) 中使用 FXMLLoader MainApplication 的方法(在我的 application.fxml 文件中指定了一个 ApplicationController)。

<AnchorPane id="AnchorPane" disable="false" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="800.0" styleClass="theme" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="app.AppController">
...more code here...
<ComboBox id="cmb_locations" fx:id="cmb_locations">
    <items>
        <FXCollections fx:factory="observableArrayList">
            <String fx:value="Item 1" />
            <String fx:value="Item 2" />
            <String fx:value="Item 3" />
        </FXCollections>
    </items>
</ComboBox>

现在,我有一个 ComboBoxapplicaton.fxml ,其中包含三个项目(默认项目)。我需要的是填充 ComboBox在以我自己的值(value)观启动的过程中。有谁知道如何实现这一点以及将相关代码片段放在哪里(app.AppController 或类似的东西)?提前致谢。

最佳答案

您有一些用于 fxml 文件的 Controller 。在那里您可以访问您的 ComboBox。您可以将此代码放在设置元素列表中(可能在 initialize() 方法中):

如果你真的不想编辑你的 fxml 文件,你可以先用 cmb_locations.getItems().clear(); 清除列表。在设置新列表之前。

public class ApplicationController implements Initializable {

    @FXML
    ComboBox cmb_locations;
    ...
    @Override
    public void initialize(URL url, ResourceBundle rb) {
        ...
        List<String> list = new ArrayList<String>();
        list.add("Item A");
        list.add("Item B");
        list.add("Item C");
        ObservableList obList = FXCollections.observableList(list);
        cmb_locations.getItems().clear();
        cmb_locations.setItems(obList);
        ...
    }
}

关于javafx-2 - JavaFX/如何在启动时加载/填充值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18361195/

相关文章:

css - fxml 中的组合框菜单项字体更改

java - 如何在 JavaFX 2 中将 ArrayList 从一个场景传递到另一个场景?

JavaFX - 水平选取框文本

java - TextField 中的新行

java - 在 TreeView<E> 内显示 TableView<ObservableList<String>>

具有一个可编辑项目的 JavaFX ComboBox

utf-8 - 如何取消屏蔽 JavaFX PasswordField 或正确屏蔽 TextField?

JavaFX TextInputControl requestFocus

java - 如何使用带有javafx的webview设置html节点值

java - JavaFx 中使用 Escape 按钮关闭舞台