2016-04-03 22 views
0

菜单项的MenuItem类中的属性包括名称,价格,卡路里和描述。这三个JList组件被称为startersListmainsListdessertsList,并在一个叫foodOptionGUI我有一个保存菜单项属性的类。我需要填充三个JLists。我该怎么做?

在我已填充名单的那一刻JFrame通过使用:

startersList.setListData(starters); 

(这只是一个临时的解决)

我的问题是我不知道如何列出所有的开胃菜,主菜和甜点,包括他们的名字,价格,卡路里和描述,进入三个单独的名单。

public class MenuItem { 

    private String name; 
    private String price; 
    private String descriptions; 
    private int calories; 

    public MenuItem(String Name, String Price, String desc, int cal) { 

     name = Name; 
     price = Price; 
     descriptions = desc; 
     calories = cal; 
    } 

    public String getPrice(){ 
     return price; 
    } 


    public String getName(){ 
     return name;  
    } 

    public void setName(String name){ 
     this.name = name; 
    } 

    public String getDescriptions(){ 
     return descriptions; 
    } 

    public void setDescriptions(String desc){ 
     this.descriptions = desc; 
    } 

    public int getCalories(){ 
     return calories; 
    } 

    public void setCalories(int cal){ 
     this.calories = cal; 
    } 

    public String toString(){ 
     return name + ", " + price + ", " + calories + ", " +  descriptions ; 
    } 

} 
+0

'私有String价格;'也许应该是'私人诠释价格;'(其中列出美分的价格,便士或欧元的部分)。 'MenuItem'可能还会声明3个常量来描述起始者,干线和沙漠。例如'public static final int STARTER = 0;'让类的用户(程序员)在构造项时为项目定义合适的类别。 *“我的问题是,我不知道如何将所有的起始者,主菜和甜点,包括他们的名字,价格,卡路里和描述列入三个单独的列表。”*问题是什么?当然你正在把.. –

+0

..'MenuItem'对象放到列表中,那么只需要配置列表来显示最终用户需要看到的内容。我个人会提供信息。在“最小”列表中,并显示鼠标悬停在其他字段上的其他详细信息。那么,具体是什么问题呢? –

+0

对不起,我有点不清楚。我的意思是说我不知道​​如何创建对象,我试过了:startersList = new JList(); \t \t startersList.setBounds(30,87,122,137); \t \t contentPane.add(startersList); \t \t startersList.addMenuItem(“汤”,“3”,“300”,“当日汤”);但它的错误并且不起作用 – SJ21W

回答

1
startersList.addMenuItem("soup", "3", "300", "soup of the day"); 

但它的错误和不工作

JList不具有 “addMenuItem” 的方法。

您将数据添加到ListModel。然后您将ListModel添加到JList

阅读Swing教程How to Use Lists中的部分,了解可以下载的演示代码。

在演示代码String中将数据添加到ListModel。在您的情况下,您希望将一个MenuItem对象添加到模型中,因此在将其添加到模型之前,首先需要创建每个对象的实例。

因此,在本教程和你的代码的代码的基本区别是:

listModel = new DefaultListModel(); 
listModel.addElement(new MenuItem(values for item 1)); 
listModel.addElement(new MenuItem(values for item 2)); 
list = new JList(listModel); 
相关问题