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 + '}';
}
}