我试图设置我的选择框的默认选定项目,但它没有按预期工作...
<ChoiceBox fx:id="d" value="- Select choice -">
<String fx:value="hellow"/>
</ChoiceBox>
答案 0 :(得分:3)
在JavaFX & FXML: how do I set the default selected item in a ChoiceBox in FXML?
问题中回答了这个答案例如,当您想要选择第二个值作为默认值时,您可以在 FXML 文件中执行以下操作:
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.collections.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8" fx:controller="choicebox.defaultselection.FXMLDocumentController">
<children>
<ChoiceBox layoutX="16.0" layoutY="52.0" prefWidth="150.0" value="5 minutes">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="2 minutes" />
<String fx:value="5 minutes" />
<String fx:value="15 minutes" />
</FXCollections>
</items>
</ChoiceBox>
</children>
</AnchorPane>
答案 1 :(得分:0)
您可以使用.setValue("");
来设置默认值..请注意valuename
observablearray("","","")
实施例
@fxml
private ChoiceBox choiceId; // this is fxml choicebox Id name given in fxml file
ObservableList<String> options = FXCollections.observableArrayList("valuename1","valuename2");
choiceId.setValue("valuename1"); // this statement shows default value
choiceId.setItems(options); // this statement adds all values in choiceBox
答案 2 :(得分:0)
当我们使用“值”时,它将为您的选择框设置默认值,甚至您可以为您的选择框显示任何短消息:
<ChoiceBox value="- Select choice -">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="first choice"></String>
</FXCollections>
</items>*emphasized text*
</ChoiceBox>
答案 3 :(得分:0)
这个问题是很多年前提出的,但我不喜欢给出的答案。我最近遇到了同样的问题,我终于意识到了问题所在。以这个为例:
<ChoiceBox fx:id="cb_DBEditors" layoutX="148.0" layoutY="192.0" prefHeight="25.0" prefWidth="124.0" value="Testing">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="SQL Plus" />
<String fx:value="Something Else" />
</FXCollections>
</items>
</ChoiceBox>
默认value=""
中的值必须等于fx:value
字符串之一。如果不是,则ChoiceBox
将为空白。回顾一下,您设置的默认值必须是fx:value
列表中的<items>
之一。
<ChoiceBox fx:id="cb_DBEditors" layoutX="148.0" layoutY="192.0" prefHeight="25.0" prefWidth="124.0" value="SQL Plus">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="SQL Plus" />
<String fx:value="Something Else" />
</FXCollections>
</items>
</ChoiceBox>