java课程设计报告之个人通讯录管理程序.docx
- 文档编号:8036675
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:27
- 大小:86.96KB
java课程设计报告之个人通讯录管理程序.docx
《java课程设计报告之个人通讯录管理程序.docx》由会员分享,可在线阅读,更多相关《java课程设计报告之个人通讯录管理程序.docx(27页珍藏版)》请在冰豆网上搜索。
java课程设计报告之个人通讯录管理程序
一、设计内容
设计GUI界面的个人通讯录,用户可以添加,删除,修改,查询,打印通讯录中的记录!
二、设计要求
用图形用户界面实现:
1、能实现增加记录,删除记录,显示所有记录,查询记录,文件备份。
2、通讯录的功能包括:
姓名,电话,Email等。
3、使用数据库做后台连接!
三、总体设计
有5个类
各类之间的关系!
1、DAO.java
该类主要负责进行数据库连接,含有数据库的连接方法!
2、User.java
实体类主要作用是实现java的封装特性,利用服务类实现各种增删改查的操作方法!
3、UserService.java
该类主要是对各种操作方法的定义和实现,是实现增删改查等主要功能的服务类!
4、MySeystem
该类主要是实现图形化界面的!
实现按钮,输入框,标签等图形化界面!
5、UseSystem
该类是程序的主类,该类含有main方法,程序从该类开始执行。
四、具体设计
将5个java文件保存到同一个文件夹中,例如:
C:
\test。
将5个java
文件分别编译生成相应的字节码(class)文件。
然后,用java解释器运行主类:
主界面
修改界面
添加界面
五、具体分工
我参与设计添加页面,添加方法,数据库部分操作。
六、程序设计
代码:
1、UseSystem;类
publicclassUseSystem{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
newMySystem().validate();
}
}
2、MySystem类
importjava.awt.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.util.*;
importjavax.swing.*;
importcn.cc.system.model.User;
importcn.cc.system.service.UserService;
publicclassMySystemextendsJFrameimplementsActionListener,ItemListener{
UserServiceuService=newUserService();
Useru=newUser();
Choicechoice=newChoice();
JTextFieldt1=newJTextField(15);
JButtonb1=newJButton("查询");
java.awt.Listlist=newjava.awt.List(6,true);
JButtonb2=newJButton("增加");
JButtonb3=newJButton("删除");
JButtonb4=newJButton("修改");
JButtonb5=newJButton("导出");
Containercon=getContentPane();
java.util.List
//staticVector
intflag=0;
MySystem(){
super("个人通讯录管理程序");
setSize(400,400);
con.setLayout(newBorderLayout());
choice.add("姓名");
choice.add("类别");
choice.add("手机号码");
choice.add("查询全部记录");
Panelp1=newPanel();
//Panelp2=newPanel();
Panelp3=newPanel();
p1.setBackground(Color.blue);
p1.setSize(300,10);
//p2.setBackground(Color.cyan);
//p2.setSize(380,300);
p3.setBackground(Color.green);
list.setSize(300,300);
p1.add(choice);
p1.add(t1);
p1.add(b1);
p3.add(b2);
p3.add(b4);
p3.add(b3);
p3.add(b5);
con.add("North",p1);
con.add("Center",list);
con.add("South",p3);
setVisible(true);
validate();
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
setVisible(false);
System.exit(0);
}
});
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
list.addItemListener(this);
}
@Override
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==b2){//通过产生外部窗体,来实现添加功能
finalJFramenewf=newJFrame("添加联系人");
newf.setSize(400,400);
newf.setVisible(true);
newf.setLayout(newGridLayout(10,2));
JLabeljb1=newJLabel("联系人姓名:
");
finalJTextFieldjtf1=newJTextField(15);
Panelpp1=newPanel();
pp1.add(jb1);
pp1.add(jtf1);
newf.getContentPane().add(pp1);
JLabeljb2=newJLabel("联系人电话:
");
finalJTextFieldjtf2=newJTextField(15);
Panelpp2=newPanel();
pp2.add(jb2);
pp2.add(jtf2);
newf.getContentPane().add(pp2);
JLabeljb3=newJLabel("固定电话:
");
finalJTextFieldjtf3=newJTextField(15);
Panelpp3=newPanel();
pp3.add(jb3);
pp3.add(jtf3);
newf.getContentPane().add(pp3);
JLabeljb4=newJLabel("联系人QQ:
");
finalJTextFieldjtf4=newJTextField(15);
Panelpp4=newPanel();
pp4.add(jb4);
pp4.add(jtf4);
newf.getContentPane().add(pp4);
JLabeljb7=newJLabel("联系人email:
");
finalJTextFieldjtf7=newJTextField(15);
Panelpp7=newPanel();
pp7.add(jb7);
pp7.add(jtf7);
newf.getContentPane().add(pp7);
JLabeljb8=newJLabel("联系类别:
");
finalJTextFieldjtf8=newJTextField(15);
Panelpp8=newPanel();
pp8.add(jb8);
pp8.add(jtf8);
newf.getContentPane().add(pp8);
JLabeljb5=newJLabel("联系人工作:
");
finalJTextFieldjtf5=newJTextField(15);
Panelpp5=newPanel();
pp5.add(jb5);
pp5.add(jtf5);
newf.getContentPane().add(pp5);
JLabeljb6=newJLabel("现居住地地址:
");
finalJTextFieldjtf6=newJTextField(15);
Panelpp6=newPanel();
pp6.add(jb6);
pp6.add(jtf6);
newf.getContentPane().add(pp6);
JButtonbb1=newJButton("提交");
JButtonbb2=newJButton("关闭");
Panelpp9=newPanel();
pp9.add(bb1);
pp9.add(bb2);
newf.getContentPane().add(pp9);
//JTextAreajta=newJTextArea();Panelpp10=new
//Panel();pp10.add(jta);newf.getContentPane().add();
bb1.addMouseListener(newMouseAdapter(){
publicvoidmouseClicked(MouseEventee){
Useru=newUser();
u.setName(jtf1.getText());
u.setTel(jtf2.getText());
u.setPhone(jtf3.getText());
u.setQq(jtf4.getText());
u.setWork(jtf5.getText());
u.setAddress(jtf6.getText());
u.setEmail(jtf7.getText());
u.setCategory(jtf8.getText());
if(uService.add(u)){
JOptionPane.showMessageDialog(null,"添加成功!
!
!
");
}else
JOptionPane.showMessageDialog(null,"添加失败!
!
!
");
}
});
bb2.addMouseListener(newMouseAdapter(){
publicvoidmouseClicked(MouseEventee){
newf.setVisible(false);
}
});
}
if(b1==e.getSource()){//通过调用select();实现模糊查询
list.removeAll();
select();
}
if(b3==e.getSource()){//通过获得联系人在list中的索引号,来实现对联系人的删除
if(flag==0){
JOptionPane.showMessageDialog(null,"不能删除该行!
");
}
u=uList.get(flag-1);
if(uService.delById(u.getId())){
JOptionPane.showMessageDialog(null,"删除成功!
");
uList.remove(flag-1);
list.removeAll();
list.add("编号"+""+"姓名"+""+"电话");
for(Useru1:
uList){
list.add(u1.getId()+":
"+u1.getName()+""
+u1.getTel());
}
}else
JOptionPane.showMessageDialog(null,"删除失败!
");
}
if(b4==e.getSource()){//通过获得联系人在list中的索引号,同弹出一个外部窗体其中
//有联系人的信息,用户可以修改.并在将其存入数据库
if(flag==0){
JOptionPane.showMessageDialog(null,"不能修改首行!
");
return;
}
u=uList.get(flag-1);
finalJFramenewf=newJFrame("添加联系人");
newf.setSize(400,400);
newf.setVisible(true);
newf.setLayout(newGridLayout(10,2));
JLabeljb1=newJLabel("联系人姓名:
");
finalJTextFieldjtf1=newJTextField(u.getName(),15);
Panelpp1=newPanel();
pp1.add(jb1);
pp1.add(jtf1);
newf.getContentPane().add(pp1);
JLabeljb2=newJLabel("联系人电话:
");
finalJTextFieldjtf2=newJTextField(u.getTel(),15);
Panelpp2=newPanel();
pp2.add(jb2);
pp2.add(jtf2);
newf.getContentPane().add(pp2);
JLabeljb3=newJLabel("固定电话:
");
finalJTextFieldjtf3=newJTextField(u.getPhone(),15);
Panelpp3=newPanel();
pp3.add(jb3);
pp3.add(jtf3);
newf.getContentPane().add(pp3);
JLabeljb4=newJLabel("联系人QQ:
");
finalJTextFieldjtf4=newJTextField(u.getQq(),15);
Panelpp4=newPanel();
pp4.add(jb4);
pp4.add(jtf4);
newf.getContentPane().add(pp4);
JLabeljb7=newJLabel("联系人email:
");
finalJTextFieldjtf7=newJTextField(u.getEmail(),15);
Panelpp7=newPanel();
pp7.add(jb7);
pp7.add(jtf7);
newf.getContentPane().add(pp7);
JLabeljb8=newJLabel("联系类别:
");
finalJTextFieldjtf8=newJTextField(u.getCategory(),15);
Panelpp8=newPanel();
pp8.add(jb8);
pp8.add(jtf8);
newf.getContentPane().add(pp8);
JLabeljb5=newJLabel("联系人工作:
");
finalJTextFieldjtf5=newJTextField(u.getWork(),15);
Panelpp5=newPanel();
pp5.add(jb5);
pp5.add(jtf5);
newf.getContentPane().add(pp5);
JLabeljb6=newJLabel("现居住地地址:
");
finalJTextFieldjtf6=newJTextField(u.getAddress(),15);
Panelpp6=newPanel();
pp6.add(jb6);
pp6.add(jtf6);
newf.getContentPane().add(pp6);
JButtonbb1=newJButton("提交");
JButtonbb2=newJButton("关闭");
Panelpp9=newPanel();
pp9.add(bb1);
pp9.add(bb2);
newf.getContentPane().add(pp9);
bb1.addMouseListener(newMouseAdapter(){
publicvoidmouseClicked(MouseEventee){
u.setName(jtf1.getText());
u.setTel(jtf2.getText());
u.setPhone(jtf3.getText());
u.setQq(jtf4.getText());
u.setWork(jtf5.getText());
u.setAddress(jtf6.getText());
u.setEmail(jtf7.getText());
u.setCategory(jtf8.getText());
if(uService.update(u)){
JOptionPane.showMessageDialog(null,"修改成功!
");
select();
}
elseJOptionPane.showMessageDialog(null,"修改失败!
");}
});
bb2.addMouseListener(newMouseAdapter(){
publicvoidmouseClicked(MouseEventee){
newf.setVisible(false);
}
});
}
if(b5==e.getSource()){//实现全部联系人的导出
Filef=newFile("user_information.txt");
try{
FileWriterw_file=newFileWriter(f);
BufferedWriterb_file=newBufferedWriter(w_file);
b_file.write("联系人编号\t姓名\t手机号码\t固定电话\tqq号码\temail\t类别\t工作\t现居住地地址\t");
b_file.flush();
for(Useru:
uService.getAllUser()){
b_file.write(u.getId()+"\t"+u.getName()+"\t"+u.getTel()+"\t"+u.getPhone()+"\t"+u.getQq()
+"\t"+u.getEmail()+"\t"+u.getCategory()+"\t"+u.getWork()+"\t"+u.getAddress()+"\n");
b_file.flush();
}
JOptionPane.showMessageDialog(null,"导出成功!
");
}catch(IOExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
}
}
@Override
publicvoiditemStateChanged(ItemEventa){
intsum=Integer.parseInt(a.getItem().toString());
flag=sum;}
publicvoidselect(){
if(choice.getSelectedItem()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 报告 个人 通讯录 管理程序