title: How Do I get the buttons to work? Java Programming
body: <p>I created an <code>Address Book GUI</code>, I just don't understand How to make the save and delete buttons to work, so when the user fills the text fields they can click save and it saves to the <code>JList</code> I have created and then they can also delete from it. How Do I Do this?</p>
  
  <pre><code>import javax.swing.*;
  
  import java.awt.event.*; 
  
  import java.awt.*;
  
  public class AddressBook {
  
  private JLabel lblFirstname,lblSurname, lblMiddlename,  lblPhone,
  lblEmail,lblAddressOne, lblAddressTwo, lblCity, lblPostCode, picture;
  private JTextField txtFirstName, txtSurname, txtAddressOne, txtPhone,
  txtMiddlename, txtAddressTwo, txtEmail, txtCity, txtPostCode;
  private JButton btSave, btExit, btDelete;
  private JList contacts;
  private JPanel panel;
  
  
  public static void main(String[] args) {
      new AddressBook();
  }
  
  public AddressBook(){
      JFrame frame = new JFrame("My Address Book");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(900,400);
      frame.setVisible(true);
  
  
      panel = new JPanel();
      panel.setLayout(null);
      panel.setBackground(Color.cyan);
  
  
      lblFirstname = new JLabel("First name");
      lblFirstname.setBounds(135, 50, 150, 20);
      Font styleOne = new Font("Arial", Font.BOLD, 13);
      lblFirstname.setFont(styleOne);
      panel.add(lblFirstname);
      txtFirstName = new JTextField();
      txtFirstName.setBounds(210, 50, 150, 20);
      panel.add(txtFirstName);
  
      lblSurname = new JLabel ("Surname");
      lblSurname.setBounds(385,50,150,20);
      Font styleTwo = new Font ("Arial",Font.BOLD,13);
      lblSurname.setFont(styleTwo);
      panel.add(lblSurname);
      txtSurname = new JTextField();
      txtSurname.setBounds(450,50,150,20);
      panel.add(txtSurname);
  
      lblMiddlename = new JLabel ("Middle Name");
      lblMiddlename.setBounds(620,50,150,20);
      Font styleThree = new Font ("Arial", Font.BOLD,13);
      lblMiddlename.setFont(styleThree);
      panel.add(lblMiddlename);
      txtMiddlename = new JTextField();
      txtMiddlename.setBounds(710,50,150,20);
      panel.add(txtMiddlename);
  
      lblPhone = new JLabel("Phone");
      lblPhone.setBounds(160,100,100,20);
      Font styleFour = new Font ("Arial", Font.BOLD,13);
      lblPhone.setFont(styleFour);
      panel.add(lblPhone);
      txtPhone = new JTextField();
      txtPhone.setBounds(210,100,150,20);
      panel.add(txtPhone);
  
      lblEmail = new JLabel("Email");
      lblEmail.setBounds(410,100,100,20);
      Font styleFive = new Font ("Arial", Font.BOLD,13);
      lblEmail.setFont(styleFive);
      panel.add(lblEmail);
      txtEmail = new JTextField();
      txtEmail.setBounds(450,100,150,20);
      panel.add(txtEmail);
  
      lblAddressOne = new JLabel("Address 1");
      lblAddressOne.setBounds(145,150,100,20);
      Font styleSix = new Font ("Arial", Font.BOLD,13);
      lblAddressOne.setFont(styleSix);
      panel.add(lblAddressOne);
      txtAddressOne = new JTextField();
      txtAddressOne.setBounds(210,150,150,20);
      panel.add(txtAddressOne);
  
      lblAddressTwo = new JLabel("Address 2");
      lblAddressTwo.setBounds(145,200,100,20);
      Font styleSeven = new Font ("Arial", Font.BOLD,13);
      lblAddressTwo.setFont(styleSeven);
      panel.add(lblAddressTwo);
      txtAddressTwo = new JTextField();
      txtAddressTwo.setBounds(210,200,150,20);
      panel.add(txtAddressTwo);
  
      lblCity = new JLabel("City");
      lblCity.setBounds(180,250,100,20);
      Font styleEight = new Font ("Arial", Font.BOLD,13);
      lblCity.setFont(styleEight);
      panel.add(lblCity);
      txtCity = new JTextField();
      txtCity.setBounds(210,250,150,20);
      panel.add(txtCity);
  
      lblPostCode = new JLabel("Post Code");
      lblPostCode.setBounds(380,250,100,20);
      Font styleNine = new Font ("Arial", Font.BOLD,13);
      lblPostCode.setFont(styleNine);
      panel.add(lblPostCode);
      txtPostCode = new JTextField();
      txtPostCode.setBounds(450,250,150,20);
      panel.add(txtPostCode);
  
      //image
      ImageIcon image = new ImageIcon("C:\\Users\\Hassan\\Desktop\\icon.png");
      picture = new JLabel(image);
      picture.setBounds(600,90, 330, 270);
      panel.add(picture);
  
      //buttons
      btSave = new JButton ("Save");
      btSave.setBounds(380,325,100,20);
      panel.add(btSave);
  
      btDelete = new JButton ("Delete");
      btDelete.setBounds(260,325,100,20);
      panel.add(btDelete);
  
      btExit = new JButton ("Exit");
      btExit.setBounds(500,325,100,20);
      panel.add(btExit);
      btExit.addActionListener(new Action());
  
      //list
      contacts=new JList();
      contacts.setBounds(0,10,125,350);
      panel.add(contacts);
  
      frame.add(panel); 
      frame.setVisible(true);
  }
  //button actions
  static class Action implements ActionListener {
      public void actionPerformed(ActionEvent e) {
          JFrame option = new JFrame();
          int n = JOptionPane.showConfirmDialog(option, 
                  "Are you sure you want to exit?", 
                  "Exit?", 
                  JOptionPane.YES_NO_OPTION);
          if(n == JOptionPane.YES_OPTION){
              System.exit(0);
          }
  
      }
  }
  
  }
  </code></pre>