私は自分の問題を解決する方法を探していましたが、私の状況に直接適用できるものは見つかりませんでした。基本的にはいくつかの列挙型クラスがありますが、ユーザーが選択できるコンボボックスに文字列値を格納したいのですが、単にComboBox.getItems().setAll(Enum.values());
を使用してもリストに値が設定されません。JavaFXでは、コンボボックスにenumクラスを設定しますか?
私のコードは以下の通りです。この投稿のすべてが、この投稿のクラッタを減らすために私のギブスにあります。また、私のGUIのスクリーンショットと、JavaFXでの割り当て方法についても説明します。おそらく問題がどこにあるのでしょうか。前もって感謝します!
のgit:コントローラクラスのhttps://github.com/jparr721/Blue-Box2/tree/master/src/blueBox/GUI
コード:列挙型クラスの
public class RentGameDialogController extends RentalStoreGUIController implements Initializable{
@FXML private TextField nameField, rentedOn, dueBack;
String name;
Date dateRentedOn, dateDue;
GregorianCalendar rented, due;
@FXML ComboBox<GameType> cbGame;
@FXML ComboBox<PlayerType> cbConsole;
@FXML Button cancel, addToCart;
@FXML int counter = 0;
private Stage currentStage;
@Override
public void initialize(URL location, ResourceBundle resources) {
rentedOn = new TextField();
dueBack = new TextField();
cbGame = new ComboBox<>();
}
@FXML
public void handleGameComboBox() {
cbGame.getItems().setAll(GameType.values());
}
コード:
public enum GameType {
THE_WITCHER("The Witcher 3"),
CALL_OF_DUTY_AW("Call of Duty: Advanced Warfare"),
CALL_DUTY_BLOP3("Call of Duty: Black Ops 3"),
CALL_OF_DUTY_IW("Call of Duty: Infinite Warfare"),
THE_ELDER_SCROLLS("The Elder Scrolls IV: Skyrim");
private String game;
GameType(String game) {
this.game = game;
}
public String GameType() { return game; }
@Override public String toString() { return game; }
}
画像: https://i.stack.imgur.com/chTYt.png
です。あなたが 'GameType.values();を印刷すると、何を得るのですか? –
また、 'ComboBox'の' onAction'が 'handleGameComboBox()'に設定されていることに気付きました。この場合、今あるコードを(アイテムの設定)取って、 'initialize'メソッドに入れたいと思うかもしれません。これは' onAction'の前に実装されています –
私が印刷するとき 'のコードは(GameType g:GameType.values()){ System.out.println(g); } ' 私は列挙型クラスに格納されている文字列値を返しますが、私はそれらを表示して、私のコンボボックスで選択できるようにしようとしています。彼らはうまく印刷されているので、私はそれが働いていることを知っている、私はこれを行う方法がわからないです。 –