Which is the best way to update my jlist?
I have 4 classes
1. Contact Contact(String name,String surname,int age,String phoneNumber)
2. ContactList which is an arraylist of Contact objects
3. ContactGui a jframe with 2 buttons(add,remove) and also contains jlist
4. ContactForm is a gui form to create a new Contact object and add it to ContactList
I have 4 classes
1. Contact Contact(String name,String surname,int age,String phoneNumber)
2. ContactList which is an arraylist of Contact objects
3. ContactGui a jframe with 2 buttons(add,remove) and also contains jlist
4. ContactForm is a gui form to create a new Contact object and add it to ContactList
import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; /** * * @author Chris */ public class ContactForm extends JFrame{ private JPanel panel; private JButton bt1; private JButton bt2; private JLabel lb1; private JLabel lb2; private JLabel lb3; private JLabel lb4; private JTextField txt1; private JTextField txt2; private JTextField txt3; private JTextField txt4; public ContactForm(){ setTitle("Contact form"); setSize(322,200); makeLayout(); setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); setVisible(true); } public final void makeLayout(){ addWindowListener(new WindowListener() { @Override public void windowClosing(WindowEvent we) { dispose(); } @Override public void windowClosed(WindowEvent we) {} @Override public void windowOpened(WindowEvent we) {} @Override public void windowIconified(WindowEvent we) {} @Override public void windowDeiconified(WindowEvent we) {} @Override public void windowActivated(WindowEvent we) {} @Override public void windowDeactivated(WindowEvent we) {} }); panel = new JPanel(new GridLayout(5,5,12,2)); add(panel); lb1 = new JLabel("Name"); panel.add(lb1); txt1 = new JTextField(20); panel.add(txt1); lb2 = new JLabel("Surname"); panel.add(lb2); txt2 = new JTextField(20); panel.add(txt2); lb3 = new JLabel("Age"); panel.add(lb3); txt3 = new JTextField(20); panel.add(txt3); lb4 = new JLabel("Phone number"); panel.add(lb4); txt4 = new JTextField(20); panel.add(txt4); bt1 = new JButton("Add"); bt1.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent ae) { addNewContact(); } }); panel.add(bt1); bt2 = new JButton("Cancel"); panel.add(bt2); } public void addNewContact(){ ContactList c = new ContactList(); String name = txt1.getText(); String surname = txt2.getText(); int age = Integer.parseInt(txt3.getText()); String phoneNumber = txt4.getText(); Contact a = new Contact(name,surname,age,phoneNumber); c.addContact(a); c.print(); } }
public class ContactGui extends JFrame{ private JButton bt1; private JButton bt2; private JButton bt3; private JLabel lb1; private JLabel lb2; private JLabel lb3; private JPanel panel; private JList jlist; private ContactList contactList; /** * */ public ContactGui(){ setTitle("ContactBook"); setSize(700,700); makeLayout(); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); } /** * */ public final void makeLayout(){ panel = new JPanel(new FlowLayout()); add(panel); bt1 = new JButton("Add contact"); bt1.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent ae) { ContactForm c = new ContactForm(); } }); bt1.setFocusable(false); panel.add(bt1); bt2 = new JButton("Remove contact"); bt2.setFocusable(false); panel.add(bt2); contactList = new ContactList(); jlist = new JList(contactList.getContacts().toArray()); panel.add(new JScrollPane(jlist)); } }
import java.util.ArrayList; /** * * @author Chris */ public class ContactList { private ArrayList<Contact> contacts; /** * */ public ContactList(){ contacts = new ArrayList<>(); } /** * * @return */ public ArrayList<Contact> getContacts() { return contacts; } /** * */ public void print(){ for(Contact c: contacts){ System.out.println(c.toString()); } } public void addContact(Contact c){ contacts.add(c); } }
public class Contact { private String name; private String surname; private int age; private String phoneNumber; /** * * @param name * @param surname * @param age * @param phoneNumber */ public Contact(String name, String surname, int age, String phoneNumber) { this.name = name; this.surname = surname; this.age = age; this.phoneNumber = phoneNumber; } /** * * @return */ public String getName() { return name; } /** * * @param name */ public void setName(String name) { this.name = name; } /** * * @return */ public String getSurname() { return surname; } /** * * @param surname */ public void setSurname(String surname) { this.surname = surname; } /** * * @return */ public int getAge() { return age; } /** * * @param age */ public void setAge(int age) { this.age = age; } /** * * @return */ public String getPhoneNumber() { return phoneNumber; } /** * * @param phoneNumber */ public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } /** * * @return */ @Override public String toString() { return "Contact{" + "name=" + name + ", surname=" + surname + ", age=" + age + ", phoneNumber=" + phoneNumber + '}'; } }