2013-12-18 103 views
0

我想创建一个集合,通过GUI窗体接收对象(人员)。从GUI填充java集合

窗体名称,姓氏和电话号码作为文本字段和一个添加按钮。 点击“添加”按钮,使用在文本字段中输入的数据创建一个新人。

我被困在如何将所有这些人存储在另一个类的集合中。 我尝试了以下码:

List collection = new ArrayList(); 
collection.add(p); 

其中pperson。 这不行。我在这里做错了什么?

+1

最佳GUI实践编程是某种MVC模式: http://www.austintek.com/mvc/ –

回答

0

创建一个类Person,其中包含所有必填字段 - 名称,确定名称,电话号码为members。创建人的新实例,并相应地设置这些领域,并把它添加到ArrayList实例

//instantiate a new list to store Person objects 
static List<Person> personList = new ArrayList<Person>(); 
//Create a new Person instance 
Person personObject = new Person(); 
//set the fields in the person instance 
personObject.setName(name); 
personList.add(personObject); 

用于添加的人到personList代码必须被添加到actionListener#actionPerfomed(ActionEvent event)方法添加按钮。
您应该将Person类的成员设为私人,并将其设置为public。您可以将列表实例标记为static。所以,集合将在实例之间共享。添加到列表中的所有Person实例将被保留。希望这有助于!

+0

我创建了具有所有字段的Person类。此外,我用addPerson方法创建了另一个类,其中我输入了您给我的所有代码。我收到一个非法启动的表达式,用于实例化新列表和其他两个错误:package personObject和personList不存在。 – bluesony

+0

我摆脱了所有这些错误,但我的personList仍然没有记录人员。如上所述,我应该编写什么代码将Person添加到personList中。谢谢 – bluesony

+0

你可以发布你的代码吗?它会帮助我帮助你。 – Keerthivasan

0

重要的是有一个参考MLC容器类对象在GUI上:

class myGUI ... { 

    MyListContainer mlc = new MyListContainer(); 

    public void actionPerformed(...) { 
     ... // here you create the Person object 
     mlc.pl.add(aPerson); 
    } 

容器类本身也有这样的代码:

public class MyListContainer { 
    public List<Person> pl = new ArrayList<Person>(); 
    ...  
}