私は次の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>
ただし、GUIでは、デフォルトが何もないChoiceBoxが表示されるだけです。リストの最初の要素をデフォルトにし、「null」を選択するか、何も禁止しないようにします。
どうすればこれを達成できますか?
ChoiceBoxタグにvalue属性を追加しましたが、それは機能しました。
<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>
@Groostav:選択されたように表示される値をプログラムで「知っている」場合(たとえば、編集フォームにアクセスした場合)、次のことができます。
1)インデックス0の新しいアイテム(つまり、選択済みとして表示する必要のある要素)を追加します。
_myChoiceBox.getItems().add(0, ItemObtainedProgrammatically);
_
2)アイテムを選択済みとして表示します(位置0にあることがすでにわかっているため):
myChoiceBox.getSelectionModel().select(0);
おそらくこれはダーティハックと見なされますが、機能します。短所:選択ボックスに同じアイテムが2回あります
まず、Crowellの回答のように、必要な値モデルをインポートする必要があります。fxmlヘッダーに次のようにインポートする必要があります。
<?import javafx.collections.*?>
次に、独自のモデルをインポートする場合は、最初にインポートしてから、次のようにします。
<?import com.zzg.mybatis.generator.model.*?>
....
<ChoiceBox layoutX="24.0" layoutY="14.0" prefWidth="150.0">
<items>
<FXCollections fx:factory="observableArrayList">
<DatabaseDTO name="MySQL" value="1"></DatabaseDTO>
<DatabaseDTO name="Oracle" value="2"></DatabaseDTO>
</FXCollections>
</items>
</ChoiceBox>