gpt4 book ai didi

java - 基于枚举值的屏幕 ComboBoxModel

转载 作者:行者123 更新时间:2023-12-01 14:39:28 26 4
gpt4 key购买 nike

我正在尝试使用基于玩家枚举的枚举来填充组合框。

例如,在初始化游戏时,玩家选择一个派系(FactionType)。 FactionType 枚举用于每个单位 (ShipType) 的枚举值。 ShipType(FactionType) 枚举,以便每艘船都可以切换为适当的对象并实例化。我遇到的问题是如何仅使用玩家选择的该派系的单位填充组合框。示例代码如下:

public enum FactionType {
faction1, faction2, faction3
}

public enum ShipType {
Ship1(faction1), Ship2(faction2), Ship3(faction3)

private FactionType faction;

private ShipType(FactionType faction)
this.faction = faction;
}

public FactionType getFaction() {
return this.faction
}

那么在过滤掉不属于玩家阵营的任何单位类型后是否可以创建一个 ComboBoxModel ?通常我只会做一个条件语句来检查player.faction = faction,但不完全确定如何创建ComboBoxModel,因此不胜感激。

最佳答案

不要考虑单独的 enum 类,而是为每个派系考虑一个 EnumSet,如 here 所述。 .

public enum Ship {

Unit1, Unit2, Unit3, Unit4, Unit5, Unit6;
public static Set<Ship> factionOne = EnumSet.range(Unit1, Unit5);
public static Set<Ship> factionTwo = EnumSet.allOf(Ship.class);
}
...
DefaultComboBoxModel modelOne = new DefaultComboBoxModel();
for (Ship ship : Ship.factionOne) {
modelOne.addElement(ship);
}

关于java - 基于枚举值的屏幕 ComboBoxModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16126852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com