Switch to full style
Project under GPL source codes are posted here
Post a reply

Address Book in Java

Fri Oct 17, 2008 12:34 am

* Project Name:   Address Book in Java
* Programmer:   Rahul Chouhan
* Type:   Java Swing
* Technology:  Java
* IDE:   Any
* Description:   asy to keep records
first create a directory named data which should be in Bin folder of
jdk
and in that create a file
name data.dat


java code
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;

class AddressBook implements ActionListener
{

JPanel topPanel,bottomPanel;
JScrollPane scrollPane;
JFrame frame;

JMenuBar menubar = new JMenuBar(); ;
JMenu menu = new JMenu();
JMenuItem menuItem;

Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;

Image img = kit.getImage("images/icon.JPG");

AddressBook()
{

frame = new JFrame("Address Book");
frame.setSize(680,200);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(screenWidth/4, screenHeight/4);
frame.setIconImage(img);
addWidgets();
frame.show();

}



public void addWidgets()

{
menubar.add(menu);

menu = new JMenu("Options");
menuItem = new JMenuItem("Add New Contact");
menu.add(menuItem);
menuItem.addActionListener(this);

menuItem = new JMenuItem("Delete Contact");
menu.add(menuItem);
menuItem.addActionListener(this);

menuItem = new JMenuItem("Search Contacts");
menu.add(menuItem);
menuItem.addActionListener(this);

menuItem = new JMenuItem("Sort Contacts");
menu.add(menuItem);
menuItem.addActionListener(this);

menuItem = new JMenuItem("View All Contacts");
menu.add(menuItem);
menuItem.addActionListener(this);

menuItem = new JMenuItem("Backup Contacts");
menu.add(menuItem);
menuItem.addActionListener(this);


menubar.add(menu);

menu = new JMenu("Help");

menuItem = new JMenuItem("Help Contents");
menu.add(menuItem);
menuItem.addActionListener(this);

menuItem = new JMenuItem("About");
menu.add(menuItem);
menuItem.addActionListener(this);

menubar.add(menu);

frame.setJMenuBar(menubar);


JPanel topPanel = new JPanel();
JPanel bottomPanel = new JPanel();

//Add Buttons To Bottom Panel
JButton AddNew = new JButton("Add New Contact");
JButton DeleteContact = new JButton("Delete
Contact");
JButton SearchContacts = new JButton("Search
Contacts");
JButton SortContacts = new JButton("Sort
Contacts");
JButton ViewContactList = new JButton("View All
Contacts");

JLabel label = new JLabel("<HTML><FONT FACE = ARIAL
SIZE = 2><B>Use The options below and In The Menu To Manage Contacts");

//Add Action Listeners
AddNew.addActionListener(this);
DeleteContact.addActionListener(this);
SearchContacts.addActionListener(this);
SortContacts.addActionListener(this);
ViewContactList.addActionListener(this);

topPanel.add(label);

bottomPanel.add(AddNew);
bottomPanel.add(DeleteContact);
bottomPanel.add(SearchContacts);
bottomPanel.add(SortContacts);
bottomPanel.add(ViewContactList);

frame.getContentPane().add(topPanel,
BorderLayout.NORTH);
frame.getContentPane().add(bottomPanel,
BorderLayout.SOUTH);
frame.setResizable(false);



}


public static void main(String args[])
{
AddressBook add = new AddressBook();

}


OperationHandler oh = new OperationHandler();

public void actionPerformed(ActionEvent ae)
{
if(ae.getActionCommand() == "Add New Contact")
{
oh.AddNew();

}

else if(ae.getActionCommand() == "Search Contacts")
{
oh.SearchContacts();

}

else if(ae.getActionCommand() == "Sort Contacts")
{
oh.SortContacts();

}

else if(ae.getActionCommand() == "Delete Contact")
{
oh.DeleteContact();

}

else if(ae.getActionCommand() == "View All Contacts")
{

oh.ViewAllContacts();

}

else if(ae.getActionCommand() == "About")
{
JOptionPane.showMessageDialog(frame, "About
Address
Book:

Created By Rahul Chouhan
Computer Engg, IET-DAVV,
Indore.
Website:
http "," Address Book",
JOptionPane.INFORMATION_MESSAGE);

}
else if(ae.getActionCommand() == "Help Contents")
{
try
{
oh.showHelp();
}
catch(IOException e)
{
}

}
else if(ae.getActionCommand() == "Backup Contacts")
{
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
chooser.setMultiSelectionEnabled(false);

chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.showSaveDialog(frame);
FileOutputStream bfout = null;
FileInputStream bfin = null;
String filename=null;

int p;

try
{
filename = chooser.getSelectedFile().getPath();
}
catch(Exception e)
{
}

try
{
bfout = new FileOutputStream(filename +
"\data.dat");
}
catch(Exception e)
{

}
try
{
bfin = new FileInputStream("data/data.dat");
}
catch(Exception e)
{

}

try
{
do
{ p = bfin.read();
if(p!=-1)
bfout.write(p);
}while(p!=-1);
}
catch(Exception e)
{

}


}

}


}


class Contact implements Serializable
{
private String FName;
private String LName;
private String Nname;
private String EMail;
private String Address;
private String PhoneNo;
private String Webpage;
private String Bday;

public void setDetails(String fname, String lname, String nname,
String email, String address, String phone, String web, String bday)
{
FName = fname;
LName = lname;
Nname = nname;
EMail = email;
Address = address;
PhoneNo = phone;
Webpage = web;
Bday = bday;
}


public String getFName()
{
return FName;
}

public String getLName()
{
return LName;
}

public String getNname()
{
return Nname;
}

public String getEMail()
{
return EMail;
}

public String getAddress()
{
return Address;
}

public String getPhoneNo()
{
return PhoneNo;
}

public String getWebpage()
{
return Webpage;
}

public String getBday()
{
return Bday;
}


}


class OperationHandler implements ListSelectionListener,
ActionListener,
Runnable
{


JFrame newFrame;
JTextField txtFirstName;
JTextField txtLastName;
JTextField txtNickname;
JTextField txtEMail;
JTextField txtAddress;
JTextField txtPhoneNo;
JTextField txtWebpage;
JTextField txtBDay;

JButton BttnSaveAdded;

Vector v = new Vector(10,3);
int i=0,k=0;

Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;

Image img = kit.getImage("images/icon.JPG");

FileInputStream fis;
ObjectInputStream ois;

JList list;
DefaultListModel listModel;
ListSelectionModel listSelectionModel;

JRadioButton byfname, bylname;

Thread t;

JTable searchTable;

JTextField txtSearch;

String columnNames[] = { "First Name",
"Last Name",
"Nickname",
"E Mail Address",
"Address",
"Phone No.",
"Webpage",
"B'day"
};

Object data[][]= new Object[5][8];

OperationHandler()
{

try {
fis = new FileInputStream("data/data.dat");
ois = new ObjectInputStream(fis);
v = (Vector) ois.readObject();
ois.close();
}

catch(Exception e)
{

}

}


public void run()
{

try
{
FileOutputStream fos = new
FileOutputStream("data/data.dat");
ObjectOutputStream oos = new
ObjectOutputStream(fos);
oos.writeObject(v);
oos.flush();
oos.close();

}
catch(Exception e)
{
JOptionPane.showMessageDialog(newFrame, "Error
Opening
Data File: Could Not Save Contents.", "Error Opening Data File",
JOptionPane.INFORMATION_MESSAGE);
}

}


public void AddNew()
{
newFrame = new JFrame("Add New");
newFrame.setSize(220,250);
newFrame.setResizable(false);
newFrame.setIconImage(img);

JLabel lblFirstName = new JLabel("First Name: ");
JLabel lblLastName = new JLabel("Last Name: ");
JLabel lblNickname = new JLabel("Nickname: ");
JLabel lblEMail = new JLabel("EMail: ");
JLabel lblAddress = new JLabel("Address: ");
JLabel lblPhoneNo = new JLabel("Phone No: ");
JLabel lblWebpage = new JLabel("Webpage: ");
JLabel lblBDay = new JLabel("BDay: ");
JLabel lblEmpty1 = new JLabel("");
JLabel lblEmpty2 = new JLabel("");

txtFirstName = new JTextField(10);
txtLastName = new JTextField(10);
txtNickname = new JTextField(10);
txtEMail = new JTextField(10);
txtAddress = new JTextField(10);
txtPhoneNo = new JTextField(10);
txtWebpage = new JTextField(10);
txtBDay = new JTextField(10);

JButton BttnAdd = new JButton("Add New!");
BttnSaveAdded = new JButton("Save Added!");

BttnAdd.addActionListener(this);
BttnSaveAdded.addActionListener(this);
BttnSaveAdded.setEnabled(false);


JPanel centerPane = new JPanel();
JPanel bottomPane = new JPanel();

centerPane.add(lblFirstName);
centerPane.add(txtFirstName);
centerPane.add(lblLastName);
centerPane.add(txtLastName);
centerPane.add(lblNickname);
centerPane.add(txtNickname);
centerPane.add(lblEMail);
centerPane.add(txtEMail);
centerPane.add(lblAddress);
centerPane.add(txtAddress);
centerPane.add(lblPhoneNo);
centerPane.add(txtPhoneNo);
centerPane.add(lblWebpage);
centerPane.add(txtWebpage);
centerPane.add(lblBDay);
centerPane.add(txtBDay);
bottomPane.add(BttnAdd);
bottomPane.add(BttnSaveAdded);

centerPane.setLayout(new GridLayout(0,2));



newFrame.getContentPane().add(centerPane,BorderLayout.CENTER);

newFrame.getContentPane().add(bottomPane,BorderLayout.SOUTH);
newFrame.setLocation(screenWidth/4, screenHeight/4);
newFrame.show();

}


public void SearchContacts()
{
newFrame = new JFrame("Search Contacts");
newFrame.setSize(700,220);
newFrame.setLocation(screenWidth/4, screenHeight/4);
newFrame.setIconImage(img);
newFrame.setResizable(false);

JPanel topPane = new JPanel();
JLabel label1 = new JLabel("Search Contacts by First
Name
or Last Name or Both Spaced Via a Single Space:");
topPane.add(label1);

JPanel centerPane = new JPanel();
JLabel label2 = new JLabel("Search String:");
txtSearch = new JTextField(20);
JButton bttnSearch = new JButton("Search!");
bttnSearch.addActionListener(this);
JButton bttnCancel = new JButton("Cancel");
bttnCancel.addActionListener(this);
centerPane.add(label2);
centerPane.add(txtSearch);
centerPane.add(bttnSearch);
centerPane.add(bttnCancel);

searchTable = new JTable(data,columnNames);
JScrollPane scrollPane = new JScrollPane(searchTable);
searchTable.setPreferredScrollableViewportSize(new
Dimension(500, 90));

newFrame.getContentPane().add(scrollPane,BorderLayout.SOUTH);

newFrame.getContentPane().add(topPane,
BorderLayout.NORTH);
newFrame.getContentPane().add(centerPane,
BorderLayout.CENTER);
newFrame.show();
}


public void SortContacts()
{
newFrame = new JFrame("Sort Contacts");
newFrame.setSize(250,160);
newFrame.setLocation(screenWidth/4, screenHeight/4);
newFrame.setIconImage(img);
newFrame.setResizable(false);

byfname = new JRadioButton("By First Name");
byfname.setActionCommand("By First Name");
byfname.setSelected(true);

bylname = new JRadioButton("By Last Name");
bylname.setActionCommand("By Last Name");

ButtonGroup group = new ButtonGroup();
group.add(byfname);
group.add(bylname);

JPanel topPane = new JPanel();
JLabel label = new JLabel("Sort Contacts By:");
topPane.add(label);

JPanel pane = new JPanel(new GridLayout(0,1));
pane.add(byfname);
pane.add(bylname);

JPanel bottomPane = new JPanel();
JButton sortBttn = new JButton("Sort Contacts");
JButton cancelBttn = new JButton("Cancel");
bottomPane.add(sortBttn);
bottomPane.add(cancelBttn);
sortBttn.addActionListener(this);
cancelBttn.addActionListener(this);

newFrame.getContentPane().add(topPane,
BorderLayout.NORTH);
newFrame.getContentPane().add(pane,
BorderLayout.CENTER);
newFrame.getContentPane().add(bottomPane,
BorderLayout.SOUTH);

newFrame.show();

}


public void DeleteContact()
{
String fname, lname;
newFrame = new JFrame("Delete Contact");
newFrame.setSize(300,300);
newFrame.setLocation(screenWidth/4, screenHeight/4);
newFrame.setIconImage(img);

JPanel centerPane = new JPanel();
listModel = new DefaultListModel();

Contact contact = new Contact();

for(int l=0;l<v.size();l++)
{
contact = (Contact) v.elementAt(l);

fname = contact.getFName();
lname = contact.getLName();
listModel.addElement(fname + " " + lname);

}


list = new JList(listModel);

list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
listSelectionModel = list.getSelectionModel();
listSelectionModel.addListSelectionListener(this);

JScrollPane listScrollPane = new JScrollPane(list);

JPanel topPane = new JPanel();
JLabel label = new JLabel("Current Contacts:");
topPane.add(label);

JPanel bottomPane = new JPanel();

JButton bttnDelete = new JButton("Delete Selected");
bottomPane.add(bttnDelete);
bttnDelete.addActionListener(this);

JButton bttnCancel = new JButton("Cancel");
bottomPane.add(bttnCancel);
bttnCancel.addActionListener(this);

newFrame.getContentPane().add(topPane,
BorderLayout.NORTH);
newFrame.getContentPane().add(listScrollPane,
BorderLayout.CENTER);
newFrame.getContentPane().add(bottomPane,
BorderLayout.SOUTH);

newFrame.show();

}


public void ViewAllContacts()
{

newFrame = new JFrame("All Contacts In The Address
Book");
newFrame.setSize(600,300);
newFrame.setIconImage(img);

Contact con = new Contact();


String columnNames[] = { "First Name",
"Last Name",
"Nickname",
"E Mail Address",
"Address",
"Phone No.",
"Webpage",
"B'day"
};



Object data[][]= new Object[v.size()][8];


for(int j=0;j<v.size();j++)
{

con = (Contact) v.elementAt(k);

data[j][0] = con.getFName();
data[j][1] = con.getLName();
data[j][2] = con.getNname();
data[j][3] = con.getEMail();
data[j][4] = con.getAddress();
data[j][5] = con.getPhoneNo();
data[j][6] = con.getWebpage();
data[j][7] = con.getBday();

k++;

}
k=0;

JTable abtable = new JTable(data,columnNames);
JScrollPane scrollPane = new JScrollPane(abtable);
abtable.setPreferredScrollableViewportSize(new
Dimension(500, 370));

JPanel pane = new JPanel();
JLabel label = new JLabel("Contacts Currently In
The
Address Book");
pane.add(label);


newFrame.getContentPane().add(pane,BorderLayout.SOUTH);
newFrame.getContentPane().add(scrollPane,
BorderLayout.CENTER);
newFrame.setLocation(screenWidth/4,
screenHeight/4);
newFrame.show();




}

public void showHelp() throws IOException
{

String title = "Help Contents";
String data = "";
FileInputStream fishelp = null;
int i;

newFrame = new JFrame(title);
newFrame.setSize(401, 400);
newFrame.setResizable(false);
newFrame.setLocation(screenWidth/4, screenHeight/4);
newFrame.setIconImage(img);

JTextArea textArea = new JTextArea(5,20);
textArea.setLineWrap(true);
textArea.setEditable(false);

try
{
fishelp= new FileInputStream("help/help.txt");
}
catch(Exception e)
{
JOptionPane.showMessageDialog(newFrame, "Help File
Not Found.", "Help File Not Found", JOptionPane.INFORMATION_MESSAGE);
}

do
{
i = fishelp.read();
if(i!=1)
data = data + (char) i;
} while(i!=-1);

fishelp.close();

textArea.setText(data);

JPanel bottomPane = new JPanel();
JButton button = new JButton("Ok");
bottomPane.add(button);
button.addActionListener(this);

JPanel topPane = new JPanel();
JLabel label = new JLabel(title);
topPane.add(label);

JScrollPane scrollPane = new JScrollPane(textArea);


newFrame.getContentPane().add(topPane,BorderLayout.NORTH);
newFrame.getContentPane().add(scrollPane);

newFrame.getContentPane().add(bottomPane,BorderLayout.SOUTH);

newFrame.show();


}


public void actionPerformed(ActionEvent ae)
{


if(ae.getActionCommand() == "Add New!")
{

if(txtFirstName.getText().equals("") &&
txtLastName.getText().equals("") && txtNickname.getText().equals("") &&
txtEMail.getText().equals("") && txtAddress.getText().equals("") &&
txtPhoneNo.getText().equals("") && txtWebpage.getText().equals("") &&
txtBDay.getText().equals(""))
{

JOptionPane.showMessageDialog(newFrame,
"Entries Empty! Fill in the required entries to save Contact.",
"Entries
Empty", JOptionPane.INFORMATION_MESSAGE);

}

else
{
Contact contact = new Contact();

contact.setDetails(txtFirstName.getText(),txtLastName.getText(),txtNicknam
e.getText(),txtEMail.getText(),txtAddress.getText(),txtPhoneNo.getText(),t
xtWebpage.getText(),txtBDay.getText());
v.addElement(contact);
txtFirstName.setText("");
txtLastName.setText("");
txtNickname.setText("");
txtEMail.setText("");
txtAddress.setText("");
txtPhoneNo.setText("");
txtWebpage.setText("");
txtBDay.setText("");

if(BttnSaveAdded.isEnabled() == false)
BttnSaveAdded.setEnabled(true);
}



}
else if(ae.getActionCommand() == "Save Added!")
{

saveVector();
newFrame.setVisible(false);


}
else if(ae.getActionCommand() == "Ok")
{
newFrame.setVisible(false);

}
else if(ae.getActionCommand() == "Delete Selected")
{

int index;
try
{

index = list.getSelectedIndex();

if(index==-1)
{

JOptionPane.showMessageDialog(newFrame, "Select a Contact first to
delete
it.", "Select a Contact First", JOptionPane.INFORMATION_MESSAGE);
}

else
{

int n =
JOptionPane.showConfirmDialog(newFrame, "Are you sure you want to
delete
the selected Contact?", "Are you sure?", JOptionPane.YES_NO_OPTION);


if (n == JOptionPane.YES_OPTION)
{
listModel.remove(index);
v.removeElementAt(index);
saveVector();
newFrame.show();


}
else if (n ==
JOptionPane.NO_OPTION)
{

}

}

}
catch(Exception e)
{

}

}
else if(ae.getActionCommand() == "Cancel")
{

newFrame.setVisible(false);
}
else if(ae.getActionCommand() == "Search!")
{
String SearchStr;
SearchStr = txtSearch.getText();
boolean flag=false;
Contact con = new Contact();
int c=0;

for(int t=0;t<5;t++)
{
data[t][0] = "";
data[t][1] = "";
data[t][2] = "";
data[t][3] = "";
data[t][4] = "";
data[t][5] = "";
data[t][6] = "";
data[t][7] = "";
}

for(int t=0;t<v.size();t++)
{

con = (Contact) v.elementAt(t);


if(SearchStr.equalsIgnoreCase(con.getFName()) ||
SearchStr.equalsIgnoreCase(con.getLName()) ||
SearchStr.equalsIgnoreCase(con.getFName() + " " + con.getLName()))
{
flag=true;

data[c][0] = con.getFName();
data[c][1] = con.getLName();
data[c][2] = con.getNname();
data[c][3] = con.getEMail();
data[c][4] = con.getAddress();
data[c][5] = con.getPhoneNo();
data[c][6] = con.getWebpage();
data[c][7] = con.getBday();
searchTable = new
JTable(data,columnNames);
newFrame.setSize(700,221);
newFrame.setSize(700,220);

if(c<5)
c++;
}

}


if(flag)
{
JOptionPane.showMessageDialog(newFrame,
"Contact Found!", "Search Result!", JOptionPane.INFORMATION_MESSAGE);
}

else
{
JOptionPane.showMessageDialog(newFrame,
"No
Such Contact Found!", "Search Result!",
JOptionPane.INFORMATION_MESSAGE);
}


}
else if(ae.getActionCommand() == "Sort Contacts")
{

if(byfname.isSelected())
{
Contact contact1 = new Contact();
Contact contact2 = new Contact();
Contact temp = new Contact();
int l,m;

for(l=0;l<v.size()-1;l++)
{
for(m=l+1;m<v.size();m++)
{
contact1 = (Contact) v.elementAt(l);
contact2 = (Contact) v.elementAt(m);


if(contact1.getFName().compareTo(contact2.getFName()) > 0)
{
temp = (Contact)
v.elementAt(m);

v.setElementAt(v.elementAt(l),m);
v.setElementAt(temp,l);
}

}
}

saveVector();
}
else
{

Contact contact1 = new Contact();
Contact contact2 = new Contact();
Contact temp = new Contact();
int l,m;

for(l=0;l<v.size()-1;l++)
{
for(m=l+1;m<v.size();m++)
{
contact1 = (Contact) v.elementAt(l);
contact2 = (Contact) v.elementAt(m);


if(contact1.getLName().compareTo(contact2.getLName()) > 0)
{
temp = (Contact)
v.elementAt(m);

v.setElementAt(v.elementAt(l),m);
v.setElementAt(temp,l);
}

}
}

saveVector();
}

newFrame.setVisible(false);
}


}


public void saveVector()
{
t = new Thread(this, "Save Vector Thread");
t.start();

}


public void valueChanged(ListSelectionEvent lse)
{


}

}


Code:
Author mail :[email protected]




Re: Address Book in Java

Sun Jul 19, 2009 12:07 pm

can anyone tell me how to do java documentation to this address book

Re: Address Book in Java

Tue Jul 21, 2009 11:25 am

you have to put documentation annotations ( for the functions , variables and classes ) and then run the java generate documentation command .

Re: Address Book in Java

Wed Jul 22, 2009 10:17 am

i con't understand what u r saying...can u plz send me the full documentation of the address book project ...

Re: Address Book in Java

Wed Jul 22, 2009 11:09 am

can u give me,full documentation of ADDRESS BOOK

Re: Address Book in Java

Tue Sep 22, 2009 8:46 pm

I need to know how to make a documentation for the address book ,Can you give me ur documentation , please ...
thank u again ...

Re: Address Book in Java

Tue Sep 22, 2009 9:55 pm

There is not documentation available for this small project .But you can create yours using the annotations of javadoc like :
Code:
@author
@param
@return
 


Post a reply
  Related Posts  to : Address Book in Java
 best book on java?     -  
 what is MAC address     -  
 Find MAC Address     -  
 Get Server address     -  
 change the MAC address     -  
 Get IP address code     -  
 log visitor IP address.     -  
 ban visitor from a specific IP-address     -  
 validate email address in asp     -  
 How to get the weather forecast using IP address     -  

Topic Tags

Java Swing, Java Projects