私はMyEnum
タイプの利用可能な値が移入されてみたいComboBox
を持つフォームがあります選択を行うと、例えばボタンを打った後、私が作成したいのですが、その後JavaFXでUIを使用して列挙を表示および作成するベストプラクティスは何ですか?
public enum MyEnum {
FIRST_CHOICE ("First choice"),
SECOND_CHOICE ("Second choice");
private String value;
MyEnum(String value) {
this.value = value;
}
public String toString() {
return value;
}
}
myComboBox.getItems().setAll(MyEnum.values());
を新しいMyEnum
オブジェクトです。私が思いついたアイデアは、次のとおりです。
オプション1:
とら選択に係る新しいMyEnum
を作成し、コンボボックスから値を取得し、switch
ステートメントを使用して。
オプション2:
が列挙されたもののように文字列値が同じ作りとvalueOf()
を使用してMyEnum
を作成します。
public enum MyEnum {
FIRST_CHOICE ("FIRST_CHOICE"),
SECOND_CHOICE ("FIRST_CHOICE");
...
}
MyEnum myEnum = MyEnum.valueOf(myComboBox.getSelectionModel().getSelectedItem())
---------
だから最初の選択肢はひどいです、私は知っています。 2番目はやや上手ですが、「FIRST_CHOICE」のようなテキストが表示されるため、ユーザーフレンドリーではありません。より良いオプションがあると思います。可能な限りViewとModelを分離して、可能な限り最良の状態にしたいと思っていますが、私はそれをどのように達成できるのか全く分かりません。
'valueOf'は新しい列挙定数を作成しません。それは既存のものを返します... – fabian