使用新面板向ArrayList添加新项目 - swing Java

时间:2013-04-30 18:43:32

标签: java swing user-interface

我想知道,如何在Java GUI中通过新面板添加新项目。

我上课Program

public class Program extends javax.swing.JFrame {
 public ArrayList<Contact> contacts = new ArrayList<Contact>();
 public int pos;


public Program() {
    contacts.add(new Contact("John Tavares", "736426436", "Prague"));
    contacts.add(new Contact("John Doe", "725847896", "NY"));
    contacts.add(new Contact("Damien Smith", "725589963", "London"));
    pos = 0;
    initComponents();
}

然后一些标签显示ArrayList的内容,它工作正常。在班级Contact中有姓名,电话和城市。

我有JButton New Contact,它打开了新的Panel NewContact,其中包含名称,电话和城市的文本字段,当然还有OK JButton。这也很好。

有人可以帮助我,我怎样才能从NewContact的文本字段中获取文本并将它们添加到ArrayList?

感谢您的任何建议

2 个答案:

答案 0 :(得分:1)

我建议使用JTable来显示你的数据。有关详细信息,请阅读How to Use Tables上的Swing教程中的部分。

在新的联系表单中,您可以直接将数据添加到TableModel。 DefaultTableModel支持addRow(...)方法。

对于允许您向TableModel添加联系人的更复杂的解决方案,您需要创建自定义模型。您可以使用Bean Table Model

  

如何从文本字段中获取文本

您使用getText()方法。阅读Swing教程。也许从How to Write an Action Listener部分开始。单击按钮时会调用ActionListener。

答案 1 :(得分:1)

如果我理解正确,你想用按钮添加联系人。 首先,你必须创建一个新按钮:

private JButton mybutton = new JButton("Add");

然后你必须覆盖actionListener

private void addActionListener() {
    mybutton.addActionListener(this);
}

然后你必须要按照你按下的按钮:

@Override
public void actionPerformed (ActionEvent e) {
Object source = e.getSource();
if(source == mybutton)
    contacts.add(something);
}