import java.util.*;
import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
import java.awt.event.*;
import javax.swing.tree.*;
import java.awt.Color;
public class GUIMP extends JFrame implements ActionListener {
String Sname="";
String Semail="";
int iConNum=0;
int id=0;
//icons& images
ImageIcon mid;
ImageIcon image;
ImageIcon del;
ImageIcon edi;
ImageIcon exi;
ImageIcon cle;
ImageIcon bg1;
JLabel bgd;
ImageIcon bg2;
JLabel bgd2;
JLabel git;
//components
JPanel panel1=new JPanel();
JPanel panel2= new JPanel();
JFrame frame2=new JFrame();
JButton Add;
JButton Delete;
JButton Edit;
JButton Exit;
JButton Clear;
JLabel label;
JTextField name;
JLabel label2;
JTextField email;
JLabel label3;
JTextField ConNum;
//Components for frame 2
JLabel lab;
JTextField nam;
JLabel lab2;
JTextField ema;
JLabel lab3;
JTextField num;
JButton sub;
JButton can;
//Jtree
JTree tree ;
DefaultMutableTreeNode parent;
public GUIMP() {
//settings
//frame2
frame2.setTitle("Adding Info");
frame2.setLocation(325,350);
frame2.setSize(372, 144);
//main frame
setTitle("Phonebook Tree");
setLocation(250,200);
setSize(500,446);
setDefaultCloseOperation(3);
setLayout(null);
frame2.setLayout(null);
panel1.setLayout(null);
panel2.setLayout(null);
panel2.setSize(500,400);
//splitpane
JSplitPane splitPane = new JSplitPane( JSplitPane.HORIZONTAL_SPLIT, panel1,panel2 );
splitPane.setResizeWeight(0.5);
splitPane.setContinuousLayout(true);
splitPane.setOneTouchExpandable(true);
splitPane.setBounds(0,0,500,1000);
add(splitPane);
//Buttons
image=new ImageIcon("add.jpg");
Add=new JButton(image);
Add.setBounds(5,5,45,50);
panel1.add(Add);
Add.addActionListener(this);
del=new ImageIcon("delete.png");
Delete=new JButton(del);
Delete.setBounds(80,5,45,50);
panel1.add(Delete);
Delete.addActionListener(this);
edi=new ImageIcon("edit.jpg");
Edit=new JButton(edi);
Edit.setBounds(160,5,45,50);
panel1.add(Edit);
Edit.addActionListener(this);
cle=new ImageIcon("clear.png");
Clear=new JButton(cle);
Clear.setBounds(0,370,65,35);
panel2.add(Clear);
Clear.addActionListener(this);
exi=new ImageIcon("exit.gif");
Exit=new JButton(exi);
Exit.setBounds(150,370,85,35);
panel2.add(Exit);
Exit.addActionListener(this);
//Buttons for Frame 2
sub=new JButton("Submit");
sub.setBounds(265,25,100,25);
sub.addActionListener(this);
frame2.add(sub);
can=new JButton("Cancel");
can.setBounds(265,75,100,25);
can.addActionListener(this);
frame2.add(can);
//Jtree
parent= new DefaultMutableTreeNode("Digital Phonbook Contacts", true);
tree= new JTree(parent);
tree.setBounds(0,80,400,200);
//------------makes Jtree transparent---------------
//code snippet from [url=http://java.itags.org/java-core-gui-apis/40693/]Java Core GUI APIs: How to make JTree transparent? - java.itags.org[/url]
tree.setOpaque(false);
tree.setCellRenderer(new DefaultTreeCellRenderer(){
public Component getTreeCellRendererComponent(JTree tree,Object value,
boolean sel,boolean expanded,boolean leaf,int row,boolean hasFocus){
super.getTreeCellRendererComponent(tree,value,sel,expanded,leaf,row,hasFocus);
this.setBackgroundSelectionColor(null);
this.setBorderSelectionColor(null);
this.setBackgroundNonSelectionColor(new Color(0,0,0,0));
return this;
}
});
//-------------------------------------------------
panel1.add(tree);
//TextFields and Labels
label=new JLabel("Name: ");
label.setForeground(Color.white);
label.setBounds(50,5,100,25);
panel2.add(label);
name=new JTextField();
name.setBackground(Color.YELLOW);
name.setBounds(105,10,100,25);
panel2.add(name);
name.setEditable(false);
label2=new JLabel("Email:");
label2.setForeground(Color.white);
label2.setBounds(50,50,100,25);
panel2.add(label2);
email=new JTextField();
email.setBounds(105,50,100,25);
email.setBackground(Color.YELLOW);
panel2.add(email);
email.setEditable(false);
label3=new JLabel("Contact Number:");
label3.setForeground(Color.white);
label3.setBounds(5,85,100,25);
panel2.add(label3);
ConNum=new JTextField();
ConNum.setBackground(Color.YELLOW);
ConNum.setBounds(105,85,100,25);
ConNum.setEditable(false);
panel2.add(ConNum);
//background
bg1=new ImageIcon("night.jpg");
bgd=new JLabel(bg1);
bgd.setBounds(0,0,257,410);
panel1.add(bgd);
bg2=new ImageIcon("day.jpg");
bgd2=new JLabel(bg2);
bgd2.setBounds(0,0,257,411);
panel2.add(bgd2);
//Textfields and labels for frame 2
lab=new JLabel("Name:");
lab.setBounds (55, 5, 100, 25);
frame2.add(lab);
nam=new JTextField();
nam.setBounds (110, 10, 100, 25);
frame2.add(nam);
lab2=new JLabel("Email:");
lab2.setBounds (55, 45, 100, 25);
frame2.add(lab2);
ema=new JTextField();
ema.setBounds (110, 45, 100, 25);
frame2.add(ema);
lab3=new JLabel("Contact Number:");
lab3.setBounds (5, 80, 100, 25);
frame2.add(lab3);
num= new JTextField();
num.setBounds (110, 80, 100, 25);
frame2.add(num);
mid=new ImageIcon("mid.jpg");
git=new JLabel(mid);
git.setBounds(0,0,590,189);
frame2.add(git);
//----------------------------
setVisible(true);
}
public void actionPerformed(ActionEvent a)
{
if(a.getSource()==can){
frame2.setVisible(false);
}
if(a.getSource()==Delete){
}
if(a.getSource()==Add){
frame2.setVisible(true);
}
if(a.getSource()==Exit){
dispose();
}
if(a.getSource()==sub){
Sname=nam.getText();
Semail=ema.getText();
try
{
iConNum=Integer.parseInt(""+num.getText());
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, "Please enter Phone Number");
}
if(Sname.equals(""))
{
JOptionPane.showMessageDialog(null, "Please Enter Name");
}
else
{
Contact person=new Contact(Sname, Semail, iConNum);
Vector<String> bla=new Vector<String>();
DefaultMutableTreeNode category = null;
category = new DefaultMutableTreeNode("Contact"+Contact.getID());
JOptionPane.showMessageDialog(null, "Person Saved");
parent.add(category);
DefaultMutableTreeNode name= new DefaultMutableTreeNode(nam.getText());
DefaultMutableTreeNode email = new DefaultMutableTreeNode(ema.getText());
DefaultMutableTreeNode number = new DefaultMutableTreeNode(num.getText());
category.add(name);
category.add(email);
category.add(number);
}
}
}
public static void main(String[]args)
{
GUIMP var=new GUIMP();
var.setVisible(true);
}
}