Как показать целочисленные значения в JComboBox? - PullRequest
1 голос
/ 01 мая 2010

Я хотел бы знать, как установить 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, чтобы пользователь выбрал 1 из элементов (ENTREE, MAIN_MEAL ...), а затем я мог бы установить число как целое.

Я знаю, что JComboBox должен быть примерно таким:

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

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 01 мая 2010

Конструктор для 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 голос
/ 01 мая 2010

Создание элементов, как показано в этой публикации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...