JavaFX和FXML:如何在FXML中的ChoiceBox中设置默认选定项?

jon*_*omo 12 javafx javafx-2 fxml

我有以下FXML:

<ChoiceBox>
    <items>
        <FXCollections fx:factory="observableArrayList">
            <String fx:value="2 minutes" />
            <String fx:value="5 minutes" />
            <String fx:value="15 minutes" />
        </FXCollections>
    </items>
</ChoiceBox>
Run Code Online (Sandbox Code Playgroud)

但是在GUI中它只显示一个默认为nothing的ChoiceBox.我希望列表中的第一个元素是默认值,并且选择"null"或者不禁止任何内容.

我该如何做到这一点?

jon*_*omo 14

我将value属性添加到ChoiceBox标记,这是有效的.

<ChoiceBox value="2 minutes">
    <items>
        <FXCollections fx:factory="observableArrayList">
            <String fx:value="2 minutes" />
            <String fx:value="5 minutes" />
            <String fx:value="15 minutes" />
        </FXCollections>
    </items>
</ChoiceBox>
Run Code Online (Sandbox Code Playgroud)

  • 以避免硬编码字符串值的名义,有没有办法可以引用控制器上的字段或方法来获取此值?我不能使用 fx:constant 因为它只会查找 String 类上的字段,而且我不能(真的)使用绑定语法,因为这会使属性绑定。 (2认同)