(1)设一个通信录由以下几项数据信息构成:
数据项 类型
姓名 字符串
地址 字符串
邮政编码 字符串
电话号码 字符串
(2)1.主要功能:
(1) 能建立、查询、修改和增删学生通讯录
(2) 能够按多种方式进行查询
(3)界面友好,易于操作
通讯录管理系统的设计与实现
学生姓名: 指导老师:文斌
【中文摘要】 这个基于java编写的个人通讯录管理系统含有添加、删除、查找等基本功能,采用的是JDBC-ODBC桥实现数据库的连接,ODBC数据源名称chengwz.mbd。本课程设计主要解决通讯录应用的管理问题, 设计开发一个简单的通讯录系统 ,实现新建联系人,不同方式查找信息,删除信息,修改信息,联系人头像,退出系统等功能。在课程设计中,程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在通讯录应用的管理中,解决实际问题。用户和密码是123和123,系统所用的图片,自己用Photoshop制作的
关键词 :通讯录、java、通讯录应用、个人通讯录管理系统、添加、删除、查找,数据库。
效果图:::::::::::::::::::::::::::::::::::::::::::::::::
完整源代码:
//myframe.java
packagekkh;
importjava.awt.*;
importjava.awt.Event.*;
importjava.awt.event .*;
importjavax.swing.*;
importjavax.swing.event.*;
importjava.sql.*;
importjava.util.*;
publicclass myframe extends JFrame implements ActionListener,MouseListener{
JList lt;
privateJMenuBar mb;
privateJMenu mu1,mu2,mu3,mu4;
privateJMenuItem mi1,mi2,mi3,mi4,mi5,mi6,mi7;
DefaultListModeldm=new DefaultListModel();
JLabellb=new JLabel("业精于勤荒于嬉,行成于思毁于随!");
publicint j = 0;
publicint m = 0;
publicint t = 0;
publicint d=0,f=0,h=0,cag=0,del=0;
Stringstr1[] = new String[20]; // 姓名
Stringstr2[] = new String[20]; // 电话
Stringstr3[] = new String[20]; // QQ
Stringstr4[] = new String[20]; // 地址
Stringstr5[] = new String[20]; // 邮编
// 中间面板
classmypan extends JPanel implements ActionListener{
JLabel Name, Tel, QQq, Address,youb,lb2,lb3,lb4,lb5,lb6;
JButton btn1, btn2,btn3;
mypan(int index) {
int x=index;
setLayout(null);
setBackground(Color.white);
Name = newJLabel(str1[x]+" 的联系方式");
Tel = new JLabel("电话:"); lb2=new JLabel(str2[x]);
QQq = new JLabel("QQ:"); lb3=new JLabel(str3[x]);
Address = new JLabel("地址:"); lb4=new JLabel(str4[x]);
youb=newJLabel("邮编"); lb5=new JLabel(str5[x]);
ImageIcon img6 = newImageIcon("D:\\workspace\\image\\2.jpg");
if(x==1)img6 = newImageIcon("D:\\workspace\\image\\3.jpg");
if(x==2)img6 = new ImageIcon("D:\\workspace\\image\\4.jpg");
if(x==3)img6=new ImageIcon("D:\\workspace\\image\\5.jpg");
if(x==4)img6 = new ImageIcon("D:\\workspace\\image\\6.jpg");
if(x==5)img6 = new ImageIcon("D:\\workspace\\image\\7.jpg");
if(x==6)img6 = new ImageIcon("D:\\workspace\\image\\8.jpg");
if(x==7)img6 = new ImageIcon("D:\\workspace\\image\\8.jpg");
if(x==8)img6 = new ImageIcon("D:\\workspace\\image\\9.jpg");
if(x==9)img6 = new ImageIcon("D:\\workspace\\image\\10.jpg");
lb6=new JLabel("",img6,SwingConstants.LEADING);
btn1 = new JButton("删除");
btn2 = new JButton("退出");
btn3 = new JButton("修改");
Name. setBounds(340, 30, 200,30);Name.setForeground(Color.blue);
Tel. setBounds(330, 80, 60, 30);
QQq. setBounds(330, 130, 60, 30);
Address.setBounds(330, 180,60, 30);
youb.setBounds(330, 230,60, 30);
lb2.setBounds(370, 80, 180,30); lb2.setForeground(Color.red);
lb3.setBounds(370, 130,180, 30); lb3.setForeground(Color.red);
lb4.setBounds(370, 180, 180,30); lb4.setForeground(Color.red);
lb5.setBounds(370, 230, 180, 30); lb5.setForeground(Color.red);
lb6.setBounds(100, 50, 200,200);
btn1.setBounds(250, 300,60, 30);
btn2.setBounds(350, 300,60, 30);
btn3.setBounds(150, 300,60, 30);
this.add(btn1);
this.add(btn2);
this.add(btn3);
this.add(Name);
this.add(Tel);
this.add(QQq);
this.add(Address);
this.add(youb);
this.add(lb2);
this.add(lb3);
this.add(lb4);
this.add(lb5);
this.add(lb6);
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
}
/*public void paint(Graphics g) {
super.paint(g);
ImageIcon img = newImageIcon("D:\\1.jpg");
g.drawImage(img.getImage(), 200,100, 800, 300, this);
}*/
@Override
public void actionPerformed(ActionEvente) {
// TODO 自动生成的方法存根
if(e.getSource()==btn1){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动程序
String url ="jdbc:odbc:chengwz";// URL指向要访问的数据库名test
String user ="";// MySQL配置时的用户名
String password ="";// MySQL配置时的密码
ResultSet rs=null ;
Connectionconnection = DriverManager.getConnection(url, user,password);// 连续数据库
if(!connection.isClosed())
System.out.println("Succeededconnecting to the Database!");
Statement statement= connection.createStatement();// statement用来执行SQL语句
PreparedStatementpre=null;
String str2=str1[f];
Stringsq2="delete * from cwz where name=?";
pre=connection.prepareStatement(sq2); //要执行的SQL
pre.setString(1,str2);
pre.executeUpdate();
pre.close();
connection.close();
} catch (Exception ee) {
ee.printStackTrace();
System.out.println("============删除时:抛出异常===========");
}
dm.removeElementAt(f);
for (int d = f; d < j;d++) {
str1[d] = str1[d + 1];
str2[d] = str2[d + 1];
str3[d] = str3[d + 1];
str4[d] = str4[d + 1];
str5[d] = str5[d + 1];
}
j--;
f--;
JOptionPane.showMessageDialog(null, "数据删除成功!");
}
else if(e.getSource()==btn2){
dispose();
System.exit(0);
}
else if(e.getSource()==btn3){
new Revisefriend(f);
}
}
}
/*-----------------------------------------------------------------------------*/
mypanpn2=new mypan(f);mypan pnc=new mypan(f);
JLabelName, Tel, QQq, Address, youb,lb2,lb3,lb4,lb5,lb6;
JButtonbtn1, btn2,btn3;
publicmyframe(){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动程序
String url ="jdbc:odbc:chengwz";// URL指向要访问的数据库名test
String user = "";//MySQL配置时的用户名
String password = "";//MySQL配置时的密码
Connection connection =DriverManager.getConnection(url, user, password);// 连续数据库
if(!connection.isClosed())
System.out.println("Succeededconnecting to the Database!");
Statement statement =connection.createStatement();// statement用来执行SQL语句
String sql = "select * fromcwz";// 要执行的SQL语句
ResultSet rs =statement.executeQuery(sql);// 执行SQL语句并返回结果集
String name = null;
Stringphone=null;
String QQ=null;
String youbian=null;
String address=null;
while(rs.next()) {
name =rs.getString("name");// 选择sname这列数据
phone=rs.getString("phone");
QQ=rs.getString("QQ");
address=rs.getString("address");
youbian=rs.getString("postcard");
str1[j] = name;
str2[j] = phone;
str3[j] =QQ;
str4[j] = address;
str5[j] = youbian;
j++;
dm.addElement(name+" "+phone+" "+address);
}
rs.close();// 关闭结果集
connection.close();// 关闭连接
} catch(ClassNotFoundException e) {
System.out.println("Sorry,can`tfind the Driver!");
e.printStackTrace();
} catch(SQLException e) {
e.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
}
JPanel pn=new JPanel(); JPanel pn3=new JPanel();
mypan pn2=new mypan(f);
mb=new JMenuBar();
mu1=new JMenu("好友操作"); mi1=new JMenuItem("修改");mi2=new JMenuItem("删除");
mu2=new JMenu("查询"); mi3=new JMenuItem("按姓名");mi4=newJMenuItem("按电话");
mu3=new JMenu("新增"); mi5=new JMenuItem("新建联系人");
mu4=new JMenu("帮助"); mi6=new JMenuItem("关于");mi7=newJMenuItem("退出系统");
setJMenuBar(mb);
mb.add(mu1);mu1.add(mi1);mu1.add(mi2);
mb.add(mu2);mu2.add(mi3);mu2.add(mi4);
mb.add(mu3);mu3.add(mi5);
mb.add(mu4);mu4.add(mi6);mu4.add(mi7);
lb.setForeground(Color.black );
pn.add(lb);
lt=new JList(dm);
lt.setSelectionForeground(Color.blue); //选中后的字体颜色
lt.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
JScrollPane sp=new JScrollPane(lt);
ImageIcon icon=newImageIcon("D:\\1.jpg");
JLabel lbn=new JLabel("8",icon,SwingConstants.LEADING);
pn3.add(lbn);
add(sp,"West");
add(pn,"South");
add(pn2,"Center");
add(pn3,"North");
mi1.addActionListener(this);
mi2.addActionListener(this);
mi3.addActionListener(this);
mi4.addActionListener(this);
mi5.addActionListener(this);
mi6.addActionListener(this);
mi7.addActionListener(this);
lt.addMouseListener(this);
setSize(800,570);
setTitle("通讯录 1.1");
setVisible(true);
setResizable(false);//缩放
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JFrame.setDefaultLookAndFeelDecorated(true);
/*Font font=newFont("JFrame",Font.PLAIN,14);
Enumeration keys=UIManager.getLookAndFeelDefaults().keys();
while(keys.hasMoreElements()){
Object key=keys.nextElement();
if(UIManager.get(key)instanceofFont)UIManager.put(keys, font);
}*/
}
publicvoid actionPerformed(ActionEvent e){
if(e.getSource()==mi1){
new ReviseFriendname();
}
else if(e.getSource()==mi2){
new Deletefriend();
}
else if(e.getSource()==mi3){
new Searchfriend();
}
else if(e.getSource()==mi4){
new search2();
}
else if(e.getSource()==mi5){
new Addfriend();
}
else if(e.getSource()==mi6){
new about ();
}
else if(e.getSource()==mi7){
this.dispose();
}
}
@Override
publicvoid mouseClicked(MouseEvent e) {
// TODO 自动生成的方法存根
if (e.getClickCount() == 1)
{
int index=lt.locationToIndex(e.getPoint());
f=index;
pn2.removeAll();
System.out.println("balck");
Name = newJLabel(str1[index]+" 的联系方式");
Tel = new JLabel("电话:"); lb2=new JLabel(str2[index]);
QQq = new JLabel("QQ:"); lb3=new JLabel(str3[index]);
Address= new JLabel("地址:"); lb4=new JLabel(str4[index]);
youb=new JLabel("邮编"); lb5=new JLabel(str5[index]);
ImageIcon img6 = newImageIcon("D:\\workspace\\image\\2.jpg");
if(index==1)img6 = newImageIcon("D:\\workspace\\image\\3.jpg");
if(index==2)img6 = newImageIcon("D:\\workspace\\image\\4.jpg");
if(index==3)img6=new ImageIcon("D:\\workspace\\image\\5.jpg");
if(index==4)img6 = newImageIcon("D:\\workspace\\image\\6.jpg");
if(index==4)img6 = new ImageIcon("D:\\workspace\\image\\6.jpg");
if(index==5)img6 = newImageIcon("D:\\workspace\\image\\7.jpg");
if(index==6)img6 = newImageIcon("D:\\workspace\\image\\8.jpg");
if(index==7)img6 = newImageIcon("D:\\workspace\\image\\8.jpg");
if(index==8)img6 = newImageIcon("D:\\workspace\\image\\9.jpg");
if(index==9)img6 = newImageIcon("D:\\workspace\\image\\10.jpg");
lb6=new JLabel("",img6,SwingConstants.LEADING);
btn1 = new JButton("删除");
btn2 = new JButton("退出");
btn3 = new JButton("修改");
Name. setBounds(340, 30, 200,30);Name.setForeground(Color.blue);
Tel. setBounds(330, 80, 60, 30);
QQq. setBounds(330, 130, 60, 30);
Address.setBounds(330, 180,60, 30);
youb.setBounds(330, 230,60, 30);
lb2.setBounds(370,80, 180, 30); lb2.setForeground(Color.red);
lb3.setBounds(370, 130,180, 30); lb3.setForeground(Color.red);
lb4.setBounds(370, 180,180, 30); lb4.setForeground(Color.red);
lb5.setBounds(370, 230, 180, 30); lb5.setForeground(Color.red);
lb6.setBounds(100, 50, 200,200);
btn1.setBounds(250, 300,60, 30);
btn2.setBounds(350, 300,60, 30);
btn3.setBounds(150, 300,60, 30);
pn2.add(btn1);
pn2.add(btn2);
pn2.add(btn3);
pn2.add(Name);
pn2.add(Tel);
pn2.add(QQq);
pn2.add(Address);
pn2.add(youb);
pn2.add(lb2);
pn2.add(lb3);
pn2.add(lb4);
pn2.add(lb5);
pn2.add(lb6);
add(pn2,"Center");
pn2.updateUI();
}
if (e.getClickCount() == 2)
{
int index=lt.locationToIndex(e.getPoint());
new delete(index);
}
}
@Override
publicvoid mouseEntered(MouseEvent e) {
// TODO 自动生成的方法存根
}
@Override
publicvoid mouseExited(MouseEvent arg0) {
// TODO 自动生成的方法存根
}
@Override
publicvoid mousePressed(MouseEvent e) {
// TODO 自动生成的方法存根
}
@Override
publicvoid mouseReleased(MouseEvent arg0) {
// TODO 自动生成的方法存根
}
//增加好友界面
public class Addfriend extends JFrame implementsActionListener {
JTextField uTxt1, uTxt2,uTxt3, uTxt4,yb;
JLabel Name, Tel, QQ,Address,youbian;
JButton btn1, btn2;
Addfriend() {
this.setSize(500,390);
this.setTitle("增加好友");
this.setLayout(null);
Name = newJLabel("姓名:");
Tel = newJLabel("电话:");
QQ = newJLabel("QQ:");
Address = newJLabel("地址:");
youbian=newJLabel("邮编");
btn1 = newJButton("新增");
btn2 = newJButton("取消");
uTxt1 = newJTextField(20);
uTxt2 = newJTextField(20);
uTxt3 = newJTextField(20);
uTxt4 = newJTextField(20);
yb=newJTextField(20);
Name.setBounds(130,30, 60, 30);
Tel.setBounds(130,80, 60, 30);
QQ.setBounds(130,130, 60, 30);
Address.setBounds(130,180, 60, 30);
youbian.setBounds(130,230, 60, 30);
uTxt1.setBounds(170,30, 180, 30);
uTxt2.setBounds(170,80, 180, 30);
uTxt3.setBounds(170,130, 180, 30);
uTxt4.setBounds(170,180, 180, 30);
yb.setBounds(170, 230, 180, 30);
btn1.setBounds(150,300, 60, 30);
btn2.setBounds(300,300, 60, 30);
this.add(btn1);
this.add(btn2);
this.add(Name);
this.add(Tel);
this.add(QQ);
this.add(Address);
this.add(youbian);
this.add(uTxt1);
this.add(uTxt2);
this.add(uTxt3);
this.add(uTxt4);
this.add(yb);
btn1.addActionListener(this);
btn2.addActionListener(this);
this.setLocation(650,340);
this.dispose();
this.setVisible(true);
}
public voidactionPerformed(ActionEvent e) {
if (e.getSource() ==btn1) {
if(uTxt1.getText().trim().equals(""))newkong();
else{
str1[j] =uTxt1.getText();
str2[j] =uTxt2.getText();
str3[j] =uTxt3.getText();
str4[j] =uTxt4.getText();
str5[j] =yb.getText();
j++;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动程序
Stringurl = "jdbc:odbc:chengwz"; // URL指向要访问的数据库名test
Stringuser = ""; // MySQL配置时的用户名
Stringpassword = ""; // MySQL配置时的密码
Connectionconnection = DriverManager.getConnection(url, user, password);// 连续数据库
PreparedStatementpre=null;
if(!connection.isClosed())
System.out.println("Succeededconnecting to the Database!");
Statementstatement = connection.createStatement(); // statement用来执行SQL语句
Stringsql = "insert into cwz(name,phone,QQ,address,postcard)values(?,?,?,?,?)";
pre=connection.prepareStatement(sql); // 要执行的SQL语句
pre.setString(1,uTxt1.getText());
pre.setString(2,uTxt2.getText());
pre.setString(3,uTxt3.getText());
pre.setString(4,uTxt4.getText());
pre.setString(5,yb.getText());
pre.executeUpdate(); //执行
dm.addElement(uTxt1.getText()+" "+uTxt2.getText()+" "+uTxt4.getText());
pre.close();//关闭结果集
connection.close();//关闭连接
}catch(Exception ee) {
System.out.println("==charucuowu");
ee.printStackTrace();
}
this.dispose();}
}
if (e.getSource() ==btn2) {
this.dispose();
}
}
}
//按姓名查询好友界面
public class Searchfriend extendsJFrame implements ActionListener {
JLabel label;
JTextField uTxt;
JButton btn1, btn2;
int f=0;
Searchfriend() {
this.setSize(400,300);
this.setTitle("查询好友");
this.setLayout(null);
label = newJLabel("好友名");
uTxt = newJTextField(20);
btn1 = newJButton("查询");
btn2 = newJButton("退出");
label.setBounds(80,100, 60, 30);
uTxt.setBounds(130,100, 140, 30);
btn1.setBounds(100,200, 60, 30);
btn2.setBounds(220,200, 60, 30);
this.add(label);
this.add(uTxt);
this.add(btn1);
this.add(btn2);
btn1.addActionListener(this);
btn2.addActionListener(this);
this.setLocation(650,340);
this.dispose();
this.setVisible(true);
}
public voidactionPerformed(ActionEvent e) {
if (e.getSource() ==btn1) {
if(uTxt.getText().trim().equals(""))
JOptionPane.showMessageDialog(null,"请输入姓名 !");
else{
for (f = 0; f<= j; f++)
if(uTxt.getText().equals(str1[f]))
newdelete(f);
for(f=0;(f<=j)&&(!uTxt.getText().equals(str1[f]));f++)
if(!uTxt.getText().equals(str1[f])&&f==j)
JOptionPane.showMessageDialog(null,"通讯录中没有此联系人 !");
this.dispose();
}
}
if (e.getSource() ==btn2) {
this.dispose();
}
}
}
//按电话号码查询好友界面
public class search2extends JFrame implements ActionListener {
JLabel label;
JTextFielduTxt;
JButton btn1,btn2;
search2() {
this.setSize(400,300);
this.setTitle("查询好友");
this.setLayout(null);
label= new JLabel("电话");
uTxt =new JTextField(20);
btn1 =new JButton("查询");
btn2 =new JButton("退出");
label.setBounds(80,100, 60, 30);
uTxt.setBounds(130,100, 140, 30);
btn1.setBounds(100,200, 60, 30);
btn2.setBounds(220,200, 60, 30);
this.add(label);
this.add(uTxt);
this.add(btn1);
this.add(btn2);
btn1.addActionListener(this);
btn2.addActionListener(this);
this.setLocation(650,340);
this.dispose();
this.setVisible(true);
}
public voidactionPerformed(ActionEvent e) {
if(e.getSource() == btn1) {
if(uTxt.getText().trim().equals(""))
JOptionPane.showMessageDialog(null,"请输入联系人号码!");
else{
for(f = 0; f <= j; f++)
if(uTxt.getText().equals(str2[f]))
newdelete(f);
for(f=0;(f<=j)&&(!uTxt.getText().equals(str2[f]));f++)
if((!uTxt.getText().equals(str2[f]))&&(f==j))
newnone();
this.dispose();}
}
if(e.getSource() == btn2) {
this.dispose();
}
}
}
//好友信息修改界面
public class Revisefriend extendsJFrame implements ActionListener,
ItemListener {
JTextField uTxt1, uTxt2,uTxt3, uTxt4,yb;
JLabel Name, Tel, QQ,Address, youbian;
JButton btn1, btn2;
Revisefriend(int t) {
this.setSize(500,380);
this.setTitle("好友信息");
this.setLayout(null);
Name = newJLabel("姓名:");
Tel = newJLabel("电话:");
QQ = newJLabel("QQ:");
Address = newJLabel("地址:");
youbian=newJLabel("邮编");
btn1 = newJButton("修改");
btn2 = newJButton("取消");
uTxt1 = newJTextField(20);
uTxt2 = newJTextField(20);
uTxt3 = newJTextField(20);
uTxt4 = newJTextField(20);
yb=new JTextField(20);
Name.setBounds(130,30, 60, 30);
Tel.setBounds(130,80, 60, 30);
QQ.setBounds(130,130, 60, 30);
Address.setBounds(130,180, 60, 30);
youbian.setBounds(130,230, 60, 30);
uTxt1.setBounds(170,30, 180, 30);
uTxt2.setBounds(170,80, 180, 30);
uTxt3.setBounds(170,130, 180, 30);
uTxt4.setBounds(170,180, 180, 30);
yb.setBounds(170, 230, 180, 30);
btn1.setBounds(150,290, 60, 30);
btn2.setBounds(320,290, 60, 30);
uTxt1.setText(str1[t]);
uTxt2.setText(str2[t]);
uTxt3.setText(str3[t]);
uTxt4.setText(str4[t]);
yb .setText(str5[t]);
this.add(btn1);
this.add(btn2);
this.add(Name);
this.add(Tel);
this.add(QQ);
this.add(Address);
this.add(youbian);
this.add(uTxt1);
this.add(uTxt2);
this.add(uTxt3);
this.add(uTxt4);
this.add(yb);
btn1.addActionListener(this);
btn2.addActionListener(this);
this.setLocation(650,340);
this.dispose();
this.setVisible(true);
}
public voidactionPerformed(ActionEvent e) {
if(e.getSource() == btn1) {
t=cag;
if(uTxt1.getText().trim().equals(""))newkong();
else{
str1[t]= uTxt1.getText();
str2[t]= uTxt2.getText();
str3[t]= uTxt3.getText();
str4[t]= uTxt4.getText();
str5[t]= yb.getText();
dm.removeElementAt(t);
dm.add(t,uTxt1.getText()+" "+uTxt2.getText()+" "+uTxt4.getText());
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动程序
Stringurl = "jdbc:odbc:chengwz";
Stringuser = "";
Stringpassword = "";
PreparedStatementpre=null;
ResultSetrs;
Connectionconnection = DriverManager.getConnection(url, user, password);
if(!connection.isClosed())
System.out.println("Succeededconnecting to the Database!");
Statementstatement = connection.createStatement(); // statement用来执行SQL语句
Stringsql = "update cwz set name=?,phone=?,QQ=?,address=?,postcard=? wherename=?";
pre=connection.prepareStatement(sql); //要执行的SQL
pre.setString(1,uTxt1.getText());
pre.setString(2,uTxt2.getText());
pre.setString(3,uTxt3.getText());
pre.setString(4,uTxt4.getText());
pre.setString(5,yb.getText());
pre.setString(6,uTxt1.getText());
pre.executeUpdate();
pre.close();//关闭结果集
connection.close();//关闭连接
}catch(Exception ee) {
System.out.println("==修改时出错==");
ee.printStackTrace();
}
this.dispose();
}
}
else if(e.getSource() == btn2) {
this.dispose();
}
}
public voiditemStateChanged(ItemEvent e) {
}
}
//修改好友提示界面
public class ReviseFriendnameextends JFrame implements ActionListener {
JLabel FriendName;
JTextField uTxt;
JButton btn1, btn2;
ReviseFriendname() {
this.setSize(400,300);
this.setTitle("修改好友");
this.setLayout(null);
FriendName = newJLabel("好友名");
uTxt = newJTextField(20);
btn1 = newJButton("搜索");
btn2 = newJButton("退出");
FriendName.setBounds(80,100, 60, 30);
uTxt.setBounds(140,100, 160, 30);
btn1.setBounds(100,200, 60, 30);
btn2.setBounds(220,200, 60, 30);
btn1.addActionListener(this);
btn2.addActionListener(this);
this.add(FriendName);
this.add(uTxt);
this.add(btn1);
this.add(btn2);
this.setLocation(650,340);
this.dispose();
this.setVisible(true);
}
public voidactionPerformed(ActionEvent e) {
if (e.getSource() == btn1) {
if(uTxt.getText().trim().equals(""))newkong();
else{
for (m = 0;m<=j; m++)
if (uTxt.getText().equals(str1[m])){
cag=m;
new Revisefriend(m);
}
for (m = 0;m<=j&&!(uTxt.getText().equals(str1[m])); m++)
if((!(uTxt.getText().equals(str1[m])))&&(m==j))
newnone();
this.dispose();
}
}
if (e.getSource() ==btn2) {
this.dispose();
}
}
}
//删除好友界面1
public class Deletefriend extendsJFrame implements ActionListener {
JLabel FriendName;
JTextField uTxt;
JButton btn1, btn2;
String name;
Deletefriend() {
this.setSize(400, 300);
this.setTitle("搜索你要删除的好友名 ");
this.setLayout(null);
FriendName = newJLabel("好友名");
uTxt = new JTextField(20);
btn1 = newJButton("打开");
btn2 = newJButton("退出");
FriendName.setBounds(80,60, 100, 30);
uTxt.setBounds(140,60, 180, 30);
btn1.setBounds(100,200, 60, 30);
btn2.setBounds(200,200, 60, 30);
this.add(uTxt);
this.add(FriendName);
this.add(btn1);
this.add(btn2);
btn1.addActionListener(this);
btn2.addActionListener(this);
this.setLocation(650,340);
this.dispose();
this.setVisible(true);
}
public voidactionPerformed(ActionEvent e) {
if (e.getSource() ==btn2) {
this.dispose();
}
if (e.getSource() ==btn1) {
if(uTxt.getText().trim().equals(""))newkong();
else{
for (int h =0; h <= j; h++)
if(uTxt.getText().equals(str1[h])) {
newdelete(h);
}
for(inth1=0;h1<=j&&(!uTxt.getText().equals(str1[h1]));h1++)
if((!uTxt.getText().equals(str1[h1])&&h1==j))
newnone();
this.dispose();}
}
}
}
//删除好友界面2
public class delete extends JFrameimplements ActionListener {
JLabel Name, Tel, QQq, Address,youb,lb2,lb3,lb4,lb5;
JButton btn1, btn2;
delete(int h) {
f=h;
this.setSize(500, 380);
this.setTitle("联系人信息");
this.setLayout(null);
Name = new JLabel(str1[f]+" 的联系方式");
Tel = new JLabel("电话:"); lb2=new JLabel(str2[f]);
QQq = new JLabel("QQ:"); lb3=new JLabel(str3[f]);
Address = new JLabel("地址:"); lb4=new JLabel(str4[f]);
youb=new JLabel("邮编"); lb5=new JLabel(str5[f]);
btn1 = new JButton("删除");
btn2 = new JButton("返回");
Name. setBounds(190, 30, 200,30);Name.setForeground(Color.blue);
Tel. setBounds(180, 80, 60, 30);
QQq. setBounds(180, 130, 60, 30);
Address.setBounds(180, 180, 60,30);
youb.setBounds(180, 230, 60, 30);
lb2.setBounds(220, 80, 180,30); lb2.setForeground(Color.red);
lb3.setBounds(220, 130, 180,30); lb3.setForeground(Color.red);
lb4.setBounds(220, 180, 180,30); lb4.setForeground(Color.red);
lb5.setBounds(220, 230, 180, 30); lb5.setForeground(Color.red);
btn1.setBounds(150, 270, 60, 30);
btn2.setBounds(300, 270, 60, 30);
this.add(btn1);
this.add(btn2);
this.add(Name);
this.add(Tel);
this.add(QQq);
this.add(Address);
this.add(youb);
this.add(lb2);
this.add(lb3);
this.add(lb4);
this.add(lb5);
btn1.addActionListener(this);
btn2.addActionListener(this);
this.setLocation(650,340);
this.dispose();
this.setVisible(true);
}
public void actionPerformed(ActionEvente) {
if (e.getSource() == btn1){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动程序
String url ="jdbc:odbc:chengwz";// URL指向要访问的数据库名test
String user ="";// MySQL配置时的用户名
Stringpassword = "";// MySQL配置时的密码
ResultSetrs=null ;
Connectionconnection = DriverManager.getConnection(url, user,password);// 连续数据库
if(!connection.isClosed())
System.out.println("Succeededconnecting to the Database!");
Statementstatement = connection.createStatement();// statement用来执行SQL语句
PreparedStatementpre=null;
String str2=str1[f];
Stringsq2="delete * from cwz where name=?";
pre=connection.prepareStatement(sq2); //要执行的SQL
pre.setString(1,str2);
pre.executeUpdate();
pre.close();
connection.close();
} catch (Exceptionee) {
ee.printStackTrace();
System.out.println("============删除时:抛出异常===========");
}
dm.removeElementAt(f);
for (int d = f; d< j; d++) {
str1[d] = str1[d +1];
str2[d] = str2[d +1];
str3[d] = str3[d +1];
str4[d] = str4[d +1];
str5[d] = str5[d +1];
}
j--;
f--;
this.dispose();
}
else if (e.getSource() == btn2) {
this.dispose();
}
}
}
//关于
public class about extends JFrame{
JLabel lb1, lb2,lb3,lb4,lb5;
about() {
this.setSize(300, 200);
this.setTitle("关于");
this.setLayout(null);
lb1 = new JLabel(" java 课程设计 通讯录 1.1");
lb2 = new JLabel("海南师范大学信息学院 2012级计本(1)班 ");
lb3 = new JLabel(" 指导老师:文 斌 ");
lb4 = new JLabel(" 2013.12");
lb5 = new JLabel("陈万洲 201224010203");
lb1.setBounds(20, 0, 400, 50);
lb2.setBounds(20, 20, 400, 50);
lb5.setBounds(20, 40, 400, 50);
lb3.setBounds(20, 60, 400, 100);
lb4.setBounds(20, 80, 400, 100);
lb1.setForeground(Color.blue);
this.add(lb1);
this.add(lb2);
this.add(lb3);
this.add(lb4);
this.add(lb5);
this.setLocation(650,340);
this.dispose();
this.setVisible(true);
}
}
//查无此人
public class none extends JFrame {
JLabel lb1;
none() {
this.setSize(300, 200);
this.setTitle("提示");
this.setLayout(null);
lb1 = new JLabel("查无此联系人!");
lb1.setBounds(20, 0, 400, 100);
lb1.setForeground(Color.RED);
this.add(lb1);
this.setLocation(650,340);
this.dispose();
this.setVisible(true);
}
}
//没有输入名字提示界面
public class kong extends JFrameimplements ActionListener{
JLabel lb1;
JButton bt=newJButton("OK");
kong() {
this.setSize(300,200);
this.setTitle("提示");
this.setLayout(null);
lb1 = newJLabel("请输入好友姓名 !");
lb1.setBounds(20, 0,400, 100);
bt.setBounds(120,100, 60, 30);
lb1.setForeground(Color.blue);
bt.setForeground(Color.blue);
this.add(lb1);
this.add(bt);
bt.addActionListener(this);
this.setLocation(1019,414);
this.dispose();
this.setVisible(true);
}
@Override
public voidactionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
dispose();
}
}
}
//enter.java 登录界面
packagekkh;
importjava.awt.event.*;
importjava.awt.*;
importjavax.swing.*;
class enter extends JFrame implementsActionListener {
JLabel lb,user,mima;
JButton btn;
JProgressBar pg=new JProgressBar(1, 100);
Timer tim;
public JTextField user2;
public JPasswordField mima2;
int n=100;
enter() {
setSize(550, 420);
//setTitle("系统登录");
pg.setStringPainted(true);
pg.setString("沟通、从这里开始!");
pg.setBackground(Color.white);
pg.setForeground(Color.yellow);
toFront();
tim=new javax.swing.Timer(100, this);
tim.addActionListener(this);
JPanel pn=new JPanel();
setContentPane(pn);
pn.setLayout(null);
user2=new JTextField(6);
mima2=new JPasswordField(6);
mima2.setEchoChar('*');
user=new JLabel("用户:");
mima=new JLabel("密码:");
ImageIcon img3= newImageIcon("D:\\workspace\\image\\23.jpg");
lb=new JLabel(img3);
ImageIcon img1= newImageIcon("D:\\workspace\\image\\enter.jpg");
btn = new JButton(img1);
user.setBounds(20, 150, 50,30);user2.setBounds(55, 150, 100, 30);
mima.setBounds(20,200, 50, 30);mima2.setBounds(55, 200, 100, 30);
pg.setBounds(0, 346, 550, 30);
lb.setBounds(0, 0, 550, 358);
btn.setBounds(240, 249, 76, 41);
btn.setEnabled(true);
pn.add(user);pn.add(user2);
pn.add(mima);pn.add(mima2);
pn.add(pg);
pn.add(btn);
pn.add(lb);
btn.addActionListener(this);
this.setLocationRelativeTo(null);
this.dispose();
this.setVisible(true);
}
public void actionPerformed(ActionEvente) {
if (e.getSource() == btn) {
if(user2.getText().trim().equals("123")&&(mima2.getText().trim().equals("123"))){
tim.start();
pg.setString("正在进入通讯录系统.......");
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
}
elseJOptionPane.showMessageDialog(null, "你输入的账号和密码不匹配!");
}
else if(--n>0){
pg.setValue(100-n);
tim.restart();
}
else{
tim.stop();
dispose();
JFrame.setDefaultLookAndFeelDecorated(true);
myframe fr=new myframe();
}
}
}
//dome.java 程序入口mian()
packagekkh;
importjavax.swing.*;
publicclass dome {
public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame.setDefaultLookAndFeelDecorated(true);
enter et=new enter();
}
}