Results 1 to 4 of 4
Thread: java address book problems
- 11-11-2009, 07:32 PM #1
Member
- Join Date
- Nov 2009
- Posts
- 5
- Rep Power
- 0
java address book problems
hey guys i was wondering if someone could help, i have to create an address book in java that can add, delete, search as well as import details from a file.
so far iv got the GUI down (ish) iv set it over 2 frames, one to edit the data and containing alll the buttons and the other at the moment is just a JList containing the details such as name, address, phone number.
However, i cant get the jlist to take more then the name on a single line and the other details just get printed in the JList below each other.
am i using the wrong thing? maybe a JTextField or JTable? and would either of those be easyer when importing?
any help would be great thanks
Java Code:import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.util.*; import java.io.*; import javax.swing.*; import java.text.*; public class Q3 implements ActionListener { JFrame addressBook; JFrame contacts; JList theList; DefaultListModel details; JLabel labName, labAddress, labPhone,labMob; JTextField textName, textAddress, textPhone, textMob, contactsTextArea; JButton buttonSave, buttonDelete, buttonImport, buttonSearch, buttonForward, buttonBack, buttonExit; String name, address, allContacts; int phone, mob; int recordNumber; // used to naviagate using >> and << buttons Container container1; JPanel panel1; JMenuBar menu_bar; JMenu file; JMenuItem exit; JMenuItem open; JScrollPane scroller; public static void main(String args[]) { new Q3(); } public Q3() { name = ""; address = ""; phone = -1 ; //Stores 0 to indicate no Phone Number mob = -1; recordNumber = -1; createGUI(); createContacts(); } public void createContacts() { contacts = new JFrame("Contacts"); contacts.setSize(200,300); contacts.setVisible(true); contacts.setResizable(false); panel1 = new JPanel(); contacts.getContentPane().add(panel1); panel1.setBackground(Color.BLACK); menu_bar = new JMenuBar(); contacts.setJMenuBar(menu_bar); file = new JMenu ("File"); menu_bar.add(file); exit = new JMenuItem ("Exit"); file.add(exit); exit.addActionListener(this); open = new JMenuItem ("Open"); file.add(open); open.addActionListener(this); contactsTextArea = new JTextField(20); panel1.add(contactsTextArea); scroller = new JScrollPane(contactsTextArea); panel1.getRootPane().add(scroller); theList = new JList(); this.details = new DefaultListModel(); this.details.addElement("Fred"); this.details.addElement("Barney"); this.details.addElement("Wilma"); this.theList = new JList(this.details); panel1.add(this.theList); } public void createGUI() { /*Create a frame, get its contentpane and set layout*/ addressBook = new JFrame("Address Book"); addressBook.setSize(300,300); addressBook.setResizable(false); addressBook.setVisible(true); container1 = addressBook.getContentPane(); container1.setLayout(new GridBagLayout()); container1.setBackground(Color.black); container1.setSize(300, 300); menu_bar = new JMenuBar(); addressBook.setJMenuBar(menu_bar); file = new JMenu ("File"); menu_bar.add(file); exit = new JMenuItem ("Exit"); file.add(exit); exit.addActionListener(this); //Arrange components on contentPane and set Action Listeners to each JButton arrangeComponents(); } public void arrangeComponents() { labName = new JLabel("Name"); labName.setForeground(Color.white); labAddress = new JLabel("Address"); labAddress.setForeground(Color.white); labPhone = new JLabel("Home Number"); labPhone.setForeground(Color.white); labMob = new JLabel("Mobile Number"); labMob.setForeground(Color.white); textName = new JTextField(20); textAddress = new JTextField(20); textPhone = new JTextField(20); textMob = new JTextField(20); buttonSave = new JButton("Save"); buttonDelete = new JButton("Delete"); buttonSearch = new JButton("Search"); buttonImport = new JButton("Import"); buttonForward = new JButton("FORWARD"); buttonBack = new JButton("BACK"); buttonExit = new JButton("Exit"); /*add all initialized components to the container*/ GridBagConstraints gridBagConstraintsx01 = new GridBagConstraints(); gridBagConstraintsx01.gridx = 0; gridBagConstraintsx01.gridy = 0; gridBagConstraintsx01.insets = new Insets(5,5,5,5); container1.add(labName, gridBagConstraintsx01); GridBagConstraints gridBagConstraintsx02 = new GridBagConstraints(); gridBagConstraintsx02.gridx = 1; gridBagConstraintsx02.insets = new Insets(5,5,5,5); gridBagConstraintsx02.gridy = 0; gridBagConstraintsx02.gridwidth = 2; gridBagConstraintsx02.fill = GridBagConstraints.BOTH; container1.add(textName, gridBagConstraintsx02); GridBagConstraints gridBagConstraintsx03 = new GridBagConstraints(); gridBagConstraintsx03.gridx = 0; gridBagConstraintsx03.insets = new Insets(5,5,5,5); gridBagConstraintsx03.gridy = 1; container1.add(labAddress, gridBagConstraintsx03); GridBagConstraints gridBagConstraintsx04 = new GridBagConstraints(); gridBagConstraintsx04.gridx = 1; gridBagConstraintsx04.insets = new Insets(5,5,5,5); gridBagConstraintsx04.gridy = 1; gridBagConstraintsx04.gridwidth = 2; gridBagConstraintsx04.fill = GridBagConstraints.BOTH; container1.add(textAddress, gridBagConstraintsx04); GridBagConstraints gridBagConstraintsx05 = new GridBagConstraints(); gridBagConstraintsx05.gridx = 0; gridBagConstraintsx05.insets = new Insets(5,5,5,5); gridBagConstraintsx05.gridy = 2; container1.add(labPhone, gridBagConstraintsx05); GridBagConstraints gridBagConstraintsx06 = new GridBagConstraints(); gridBagConstraintsx06.gridx = 1; gridBagConstraintsx06.gridy = 2; gridBagConstraintsx06.insets = new Insets(5,5,5,5); gridBagConstraintsx06.gridwidth = 2; gridBagConstraintsx06.fill = GridBagConstraints.BOTH; container1.add(textPhone, gridBagConstraintsx06); GridBagConstraints gridBagConstraintsx07 = new GridBagConstraints(); gridBagConstraintsx07.gridx = 0; gridBagConstraintsx07.insets = new Insets(5,5,5,5); gridBagConstraintsx07.gridy = 3; container1.add(labMob, gridBagConstraintsx07); GridBagConstraints gridBagConstraintsx08 = new GridBagConstraints(); gridBagConstraintsx08.gridx = 1; gridBagConstraintsx08.gridy = 3; gridBagConstraintsx08.gridwidth = 2; gridBagConstraintsx08.insets = new Insets(5,5,5,5); gridBagConstraintsx08.fill = GridBagConstraints.BOTH; container1.add(textMob, gridBagConstraintsx08); GridBagConstraints gridBagConstraintsx09 = new GridBagConstraints(); gridBagConstraintsx09.gridx = 0; gridBagConstraintsx09.gridy = 4; gridBagConstraintsx09.insets = new Insets(5,5,5,5); container1.add(buttonSave, gridBagConstraintsx09); GridBagConstraints gridBagConstraintsx10 = new GridBagConstraints(); gridBagConstraintsx10.gridx = 1; gridBagConstraintsx10.gridy = 4; gridBagConstraintsx10.insets = new Insets(5,5,5,5); container1.add(buttonDelete, gridBagConstraintsx10); GridBagConstraints gridBagConstraintsx11 = new GridBagConstraints(); gridBagConstraintsx11.gridx = 2; gridBagConstraintsx11.gridy = 4; gridBagConstraintsx11.insets = new Insets(5,5,5,5); container1.add(buttonImport, gridBagConstraintsx11); GridBagConstraints gridBagConstraintsx12 = new GridBagConstraints(); gridBagConstraintsx12.gridx = 0; gridBagConstraintsx12.gridy = 5; gridBagConstraintsx12.insets = new Insets(5,5,5,5); container1.add(buttonBack, gridBagConstraintsx12); GridBagConstraints gridBagConstraintsx13 = new GridBagConstraints(); gridBagConstraintsx13.gridx = 1; gridBagConstraintsx13.gridy = 5; gridBagConstraintsx13.insets = new Insets(5,5,5,5); container1.add(buttonSearch, gridBagConstraintsx13); GridBagConstraints gridBagConstraintsx14 = new GridBagConstraints(); gridBagConstraintsx14.gridx = 2; gridBagConstraintsx14.gridy = 5; gridBagConstraintsx14.insets = new Insets(5,5,5,5); container1.add(buttonForward, gridBagConstraintsx14); GridBagConstraints gridBagConstraintsx16 = new GridBagConstraints(); gridBagConstraintsx16.gridx = 1; gridBagConstraintsx16.gridy = 6; gridBagConstraintsx16.insets = new Insets(5,5,5,5); container1.add(buttonExit, gridBagConstraintsx16); buttonExit.addActionListener(this); buttonSave.addActionListener(this); buttonDelete.addActionListener(this); } public void actionPerformed (ActionEvent e) { if (e.getSource() == buttonExit) { System.exit(0); } else if (e.getActionCommand().equals("Exit")) { System.exit(0); } else if (e.getSource() == buttonSave) { this.details.addElement(this.textName.getText()); this.details.addElement(this.textAddress.getText()); this.details.addElement(this.textPhone.getText()); this.details.addElement(this.textMob.getText()); } else if (e.getSource() == buttonDelete) { int j = 0; for (int i : theList.getSelectedIndices()) { details.removeElementAt(i - j); j += 1; } } } }
- 11-11-2009, 07:53 PM #2
Senior Member
- Join Date
- Aug 2009
- Location
- Pittsburgh, PA
- Posts
- 285
- Rep Power
- 12
You've got the horse on the east end of a wagon going west.
Before commiting code you need to write up what you want the output to look like.
If you show us what you want the output to look like,
we may be able to advise how to get it looking like that.
To answer your question: yes, JList puts one item on each line.
- 11-11-2009, 07:57 PM #3
Member
- Join Date
- Nov 2009
- Posts
- 5
- Rep Power
- 0
in an ideal world id like the data to be displayed as followed:
Frank, 86 Highlight Street, 0168168111, 07745729486.
so name, address, home number, moble number.
this is one of my first java projects so any help atal would be great, im starting to think that maybe a big text field would be better then a list because i also need the app to be able to import data from a file.Last edited by Ekul; 11-11-2009 at 07:57 PM. Reason: output edit
- 11-11-2009, 08:14 PM #4
Senior Member
- Join Date
- Aug 2009
- Location
- Pittsburgh, PA
- Posts
- 285
- Rep Power
- 12
Yep, a JTextArea sounds like a good choice.
I would be wary of copying a string directly from the file to the JTextArea.
That approach is inflexible--it makes the program harder to extend.
Instead, I would define a class of objects for directory entry.
The fields of the object would be name, address, phone, and mobile.
This class has a static method to read a line from a file and create an object.
Objects have a method to write themselves to a file.
Another method converts the object to a string entry for display.
Incidentally, it seems to me you will want to split the address
into two fields-- one for street location and one for city.
Similar Threads
-
An address book, using a wizard to add a new entry
By Java Tip in forum SWT TipsReplies: 0Last Post: 07-02-2008, 09:11 PM -
Programming an Address book
By d.anthonii in forum New To JavaReplies: 0Last Post: 12-31-2007, 06:26 PM -
Address Book Server 14 June 2007
By Jamie in forum Java SoftwareReplies: 0Last Post: 06-15-2007, 07:51 AM -
Address Book Server 12 June 2007
By Jamie in forum Java SoftwareReplies: 0Last Post: 06-13-2007, 11:25 AM -
Address Book Server 6 June 2007
By levent in forum Java SoftwareReplies: 0Last Post: 06-07-2007, 10:03 AM
Bookmarks