No, you're in a graphical environment, so I wouldn't recommend the use of a scanner.
The easiest thing to do is implement ActionListener onto contactBook. This way it can access any of the members. The textfields will need to be promoted to object members to retrieve them, but all you need to do is pull the fields, and insert into list. Now list is scalar in a sense, so it will only hold one object to display at a time, and not multiple fields in a single entry. I still haven't installed javac since I put in a new harddisk, but that would be as so:
class contactBook extends JFrame implements ActionListener
public void actionPerformed(ActionEvent e)
if (e.getSource() == this.saveButton)
// This is where I'm saying a list is scalar:
String sContact = this.txtName + " " + this.txtAddress + " " + this.txtPhoneNumber;
Then simply set this as the actionListener.
If you want to show each in separate columns, you'll want to use a JTable instead of a JList. You can also create a Contact class and override the toString to show in the JList as you like, or rewrite the ListCellRenderer to change the display. Hmm, as interesting as that is, its possible to make it look like a JTable within the renderer, but I've never tried that before.