如何在JComboBox中显示整数值?

时间:2010-05-01 08:14:35

标签: java jcombobox

我想知道如何设置一个包含我可以保存的整数值的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);`

我做错了什么?

2 个答案:

答案 0 :(得分:2)

JComboBox的构造函数请求Object[]。但是您无法将int[] - 数组转换为Integer[] - 数组。因此,您必须将列表更改为

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

然后可以构造组合框:

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

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

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

现在你可以像这样构建组合框:

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

现在你有你想要的东西(我想)。


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

答案 1 :(得分:1)

按照此posting

中的说明创建项目