gpt4 book ai didi

Java:使用一组 Enum 值作为 SpinnerListModel

转载 作者:行者123 更新时间:2023-12-01 13:01:35 25 4
gpt4 key购买 nike

如果在其他地方有人问过这个问题,我提前道歉,但我环顾四周,似乎找不到适合我情况的答案。

一些背景:我自己为 Savage Worlds RPG 系统编写了一种“RPG 角色生成器”。我正在使用 NetBeans IDE 为该应用程序设计 UI。到目前为止,事情进展得相当顺利,但我现在遇到了一个我似乎无法弄清楚的错误。

我有一套属性:敏捷、力量、聪明、精神和活力。这些属性的值是 Die 类型,即 d4、d6...d12。我创建了一个枚举来表示这些模具类型:

public enum DieType {

D4(4), D6(6), D8(8), D10(10), D12(12);

private int face;

private DieType(int face) {
this.face = face;
}

public int getValue() {
return face;
}

@Override
public String toString() {
String dieType = "d" + face;
return dieType;
}

}

在我的 UI 中,我创建了一系列 JSpinner,以便能够调整每个属性的值。我想在旋转器中使用这些模具类型,因此我为它们初始化了一个新的 SpinnerListModel:

agiSpin.setModel(new SpinnerListModel(DieType.values()));

到目前为止,一切都很好,一切仍然运行良好,我可以运行该应用程序,并且会出现窗口,其中为每个微调器填充了枚举列表。 (计划将模型初始化移动到一个变量,我可以将其插入到每个单独的微调器中,但现在我正在使用 NetBeans 生成的代码,因此要单独创建每个实例)。

当我尝试根据在绘制 GUI 之前实例化的 SWCharacter 类的实例来初始化每个微调器的值时,就会出现问题。对于上面的agiSpin微调器,我这样做:agiSpin.setValue(swchar.getAgiAttr());以便分配适当的值。变量agiAttrDieType枚举的一个实例。当我运行该程序时,我得到:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: invalid sequence element
at javax.swing.SpinnerListModel.setValue(SpinnerListModel.java:185)
at javax.swing.JSpinner.setValue(JSpinner.java:356)

...源自设置该值的尝试。

我做错了什么?我需要以不同的方式创建列表模型吗?我尝试赋值的方式是否存在语法错误?

最佳答案

微调器通常用于用户输入的整数或 double 值。在这种情况下,我将使用一个 ComboBox,其中每个值都被初始化。创建 JComboBox 的代码是:

    JComboBox die = new JComboBox<DieType>(DieType.values());

这应该有效。在 NetBeans 中,它会自动创建 ComboBox,因此您需要右键单击并单击“自定义代码”并进行必要的更改,如上所示。

关于Java:使用一组 Enum 值作为 SpinnerListModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23479582/

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