Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用新面板向ArrayList添加新项-swing Java_Java_Swing_User Interface - Fatal编程技术网

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

使用新面板向ArrayList添加新项-swing Java,java,swing,user-interface,Java,Swing,User Interface,我想知道,如何在JavaGUI中通过新面板添加新项 我有课程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", "73

我想知道,如何在JavaGUI中通过新面板添加新项

我有课程
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();
}
公共类程序扩展了javax.swing.JFrame{
public ArrayList contacts=new ArrayList();
公共int pos;
公共计划(){
新增(新联系人(“约翰·塔瓦雷斯”、“736426436”、“布拉格”);
新增(新联系人(“John Doe”、“725847896”、“纽约”);
联系人。添加(新联系人(“Damien Smith”、“725589963”、“伦敦”);
pos=0;
初始化组件();
}
然后是一些显示ArrayList内容的标签,效果很好。在class
Contact
中有姓名、电话和城市

我有jbuttonnewcontact,它打开了一个新面板NewContact,其中有name、tel和city的文本字段,当然还有OK JButton。这也很好用

有人能帮我吗?我如何从NewContact的文本字段中获取文本并将其添加到ArrayList


感谢您的建议

我建议使用JTable来显示您的数据。有关更多信息,请阅读Swing教程中的部分

在新的联系人表单中,您将直接向TableModel添加数据。DefaultTableModel支持addRow(…)方法

要获得更复杂的解决方案,使您能够向TableModel添加联系人,您需要创建自定义模型。您可以使用

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


使用getText()方法。阅读Swing教程。可以从“如何编写动作侦听器”一节开始。当您单击按钮时,会调用动作侦听器。

如果我理解正确,您可以使用按钮添加联系人。 首先,您必须制作一个新按钮:

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

谢谢:)但我想知道如何在新的JPanel中添加新联系人,显示我的数据是第二件事。你不需要在JPanel中添加联系人。联系人不是Swing组件。你需要将联系人信息添加到Swing组件,然后将组件添加到面板。哦,对不起……我的意思是我有一个打开新JPanel的JButton,我写了它错。一切正常。在NewJPanel中,我有用于键入新姓名、电话和城市的文本字段,当按下“添加”按钮时,我想将这些数据添加到ArrayList联系人中