2010-05-01 76 views
1

我想知道如何設置一個包含我可以保存的整數值的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,用戶將選擇其中1(主菜,MAIN_MEAL ...),然後我可以設置數字作爲整數。

我知道的JComboBox需要是類似的東西:

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

我在做什麼錯?

+1

證明你想在列表中的號碼或姓名(主菜,MAIN_MEAL。 ...)? – 2010-05-01 08:55:20

回答

2

JComboBox askes的構造函數爲Object[]。但是你不能將int[] -array轉換爲Integer[]-陣列。所以,你有你的列表改變爲

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); 

現在,你有你想要的(我認爲)。


請注意,您使用的是很奇怪的設計...