1

我想知道如何设置一个包含可以保存的整数值的 JComboBox。以下是值的定义:

public class Item 
{
    private String itemDesc;
    private int itemType;

    public static int ENTREE=0;
    public static int MAIN_MEAL=1;
    public static int DESSERT=2;
    public static int DRINK=3;
    private float price;
    int[] itemTypeArray = { ENTREE, MAIN_MEAL, DESSERT, DRINK };
    Object[][] data = {{itemDesc, new Integer(itemType), new Float(price)}};
.
.
.
}

现在,我想添加一个 JComboBox,用户将选择其中一项(ENTREE、MAIN_MEAL ...),然后我可以将数字设置为整数。

我知道 JComboBox 需要是这样的:

JComboBox combo = new JComboBox(itemTypeArray.values());
        JOptionPane.showMessageDialog( null, combo,"Please Enter Item Type", `JOptionPane.QUESTION_MESSAGE);`

我究竟做错了什么?

4

2 回答 2

2

JComboBox 的构造函数要求Object[]. 但是您不能将int[]-array转换为Integer[]-array。因此,您必须将列表更改为

Integer[] itemTypeArray = { ENTREE, MAIN_MEAL, DESSERT, DRINK };

然后可以构造组合框:

Item t = new Item();
JComboBox combo = new JComboBox(t.itemTypeArray);

但是现在您有了列表中的数字(0, 1, 2, 3)。所以只需制作一个String-array:

String[] itemAliasArray = {"Entree", "Main meal", "Dessert", "Drink"};

现在您可以像这样构造组合框:

Item t = new Item();
JComboBox combo = new JComboBox(t.itemAliasArray);

现在你有你想要的(我认为)。


请注意,您使用的是一个非常奇怪的设计......

于 2010-05-01T09:04:00.407 回答
1

如本帖所示创建项目

于 2010-05-01T16:10:49.753 回答