java学习的第二个小作业–简易通讯录

刚开始学习java,觉得确实是一门简单但实用的语言,完成了第二个小作业–简易通讯录的设计。
java gui编程,通讯录内容保存在access数据库中,功能很简单,因为刚刚学习,所以做得很粗糙,呵呵,见笑啦。

贴几张程序的截图:

登陆通讯录

package javashiyan2;

import java.awt.*;

import java.awt.event.*;

import java.sql.connection;

import java.sql.drivermanager;

import java.sql.resultset;

import java.sql.sqlexception;

import java.sql.statement;

import javax.swing.*;

//用户登陆界面

public class login extends jframe implements actionlistener {

       private container content;

       private jlabel juserlabel;

       private jlabel jpasswordlabel;

       private jtextfield jusertext;

       private jpasswordfield jpasswordtext;

       private jbutton denglu;

       private jbutton zhuce;

       private connection con;

       private statement stat;           // 声明各个组件

 

       public login() {

              super(“通讯录–用户登陆”);

              content = getcontentpane();

              gridlayout layout;

              layout = new gridlayout(3, 3, 1, 1);//布局管理器为网格型

              content.setlayout(layout);

              denglu = new jbutton(“登陆”);

              denglu.setsize(40, 15);

              denglu.addactionlistener(this);

              zhuce = new jbutton(“注册”);

              zhuce.setsize(40, 15);

              zhuce.addactionlistener(this);

              juserlabel = new jlabel(“用户名:”);

              juserlabel.setsize(80, 20);

              jusertext = new jtextfield(25);

              jusertext.setsize(80, 20);

              jpasswordlabel = new jlabel(“密码:”);

              jpasswordlabel.setsize(80, 20);

              jpasswordtext = new jpasswordfield(“”);

              jpasswordtext.setsize(80, 20); //设置组件

              content.add(juserlabel);

              content.add(jusertext);

              content.add(jpasswordlabel);

              content.add(jpasswordtext);

              content.add(denglu);

              content.add(zhuce);         //添加组件

              jusertext.addactionlistener(this);

              jpasswordtext.addactionlistener(this) ; //注册监听器

              setsize(320, 160);

              setvisible(true);            //设置窗体大小、可见

       }

resultset getresultset(string sql3) {

              resultset result = null;

              try {

                     result = stat.executequery(sql3);

              } catch (sqlexception e) {

                     e.printstacktrace();

              }

              return result;       //方法—执行sql语句,并返回结果

       }

 

       void opendatabase() {

              string driverclass = “sun.jdbc.odbc.jdbcodbcdriver”;

              // “com.microsoft.jdbc.sqlserver.sqlserverdriver”;

              string url = “jdbc:odbc:admin”;

              try {

                     // 加载jdbc-odbc桥驱动程序,driver类通过调用drivermanager.registerdriver类进行自我注册

                     class.forname(driverclass);

                     // 获得jdbc连接

                     con = drivermanager.getconnection(url, “admin”, “”);

                     // 创建statement对象

                     stat = con.createstatement(resultset.type_scroll_insensitive,

                                   resultset.concur_updatable);

              } catch (classnotfoundexception e) {

                     system.out.println(“can not find driver ” + driverclass);

              } catch (sqlexception sqe) {

                     sqe.printstacktrace();

              }

       }       //打开数据库的方法

void closedatabase() {

              try {

                     stat.close();

                     con.close();

              } catch (sqlexception exp) {

                     exp.printstacktrace();

              }

       }            //关闭数据库

       public void actionperformed(actionevent e) {

              string password = new string(jpasswordtext.getpassword());

              string username = new string(jusertext.gettext());

              if (e.getsource() == denglu) {

                     opendatabase();

                     string sql3 = “select * from admin where username=’” + username

                                   + “‘ and password=’” + password + “‘”;

                     resultset result = getresultset(sql3);

                     try {

                            if (result.next()) {

                                   joptionpane.showmessagedialog(null, “欢迎!”);

                                   main databasetest = new main();

closedatabase();  //关闭数据库

                                   this.dispose();

                            }

                            else

                                   joptionpane.showmessagedialog(null, “用户名或密码错误!”);

                            jusertext.settext(“”);

                            jpasswordtext.settext(“”);

                     } catch (headlessexception e1) {

                            e1.printstacktrace();

                     } catch (sqlexception e1) {

                            e1.printstacktrace();

                     }

              }                 //登录按钮的功能实现

              if (e.getsource() == zhuce) {

                     register.main(null);

              }                 //注册按钮的功能

       }

 

       public static void main(string[] args) {

              login application = new login();

              application.setdefaultcloseoperation(jframe.exit_on_close);

              char c = 32;

              system.out.println(c);

       }

}

 

通讯录主体

package javashiyan2;

 

import java.awt.*;

import java.awt.event.*;

import java.sql.array;

import java.sql.resultset;

import java.sql.sqlexception;

import javax.swing.*;

import javax.swing.table.defaulttablemodel;

import javax.swing.table.tablemodel;

 

//通讯录主体功能界面

public class main extends jframe implements actionlistener {

       // 字符常量,用于表顶部的分类表示

       private static final string studentno = “学号”;

       private static final string studentname = “姓名”;

       private static final string studentsex = “性别”;

       private static final string studentage = “年龄”;

       private static final string studentadd = “地址”;

       private static final string[] header = { studentno, studentname,

                     studentsex, studentage, studentadd };

 

       // 分别定义容器、面板、表、按钮、布局管理器

       private container container;

       private jpanel paneltable;

       private jpanel panelbutton;

       private jtable studenttable;

       private jbutton opendatabase, adddata, readdatabase, closedatabase,

                     seledatabase, deledatabase;

       private borderlayout layout;

       private defaulttablemodel data = new defaulttablemodel(header, 0);//声明默认表格控制模型

 

       // 定义数据库类

       private database database;

       private resultset result;

 

       public main() throws headlessexception {

              super(“通讯录”);

              paneltable = new jpanel();

              panelbutton = new jpanel();//设置两个jpanel

              container = getcontentpane();//获取内容面板

              layout = new borderlayout(5, 5);

              container.setlayout(layout); // 设置边界布局管理器

              container.add(paneltable, “center”);

              container.add(panelbutton, “south”);// 将两个jpanel布置好

              tablemodel data = new defaulttablemodel(header, 0);

              studenttable = new jtable(data);

              jscrollpane jsp = new jscrollpane(studenttable);

              paneltable.add(jsp);               //设置显示数据的表           

              opendatabase = new jbutton(“打开数据库”);

              adddata = new jbutton(“增加”);

              readdatabase = new jbutton(“查看所有”);

              seledatabase = new jbutton(“查询”);

              deledatabase = new jbutton(“删除”);

              closedatabase = new jbutton(“关闭”); //设置按钮

 

              panelbutton.setlayout(new flowlayout());

              panelbutton.add(opendatabase);

              panelbutton.add(seledatabase);

              panelbutton.add(adddata);

              panelbutton.add(readdatabase);

              panelbutton.add(deledatabase);

              panelbutton.add(closedatabase);// 布置按钮

 

              opendatabase.addactionlistener(this);

              adddata.addactionlistener(this);

              readdatabase.addactionlistener(this);

              closedatabase.addactionlistener(this);

              deledatabase.addactionlistener(this);

              seledatabase.addactionlistener(this);// 注册监听器

 

              database = new database();// 生成数据库对象

 

              setsize(500, 510);

              setvisible(true);//设置窗体大小、可见

       }

 

       public void actionperformed(actionevent e) {

              if (e.getsource() == opendatabase) {

                     database.opendatabase();

              }   //打开数据库按钮功能

              if (e.getsource() == adddata) {

                     database.zengtian();

              }  //增添数据按钮功能

              if (e.getsource() == closedatabase) {

                     database.closedatabase();

              } //关闭数据库按钮功能

              if (e.getsource() == seledatabase) {

                     string name = joptionpane.showinputdialog(“请输入您要查询的姓名”);

                     string sql2 = “select * from student where 姓名=’” + name + “‘”;

                     result = database.getresultset(sql2);

                     int j = 0;

                     string jieguo = “您所查询的记录为”;

                     try {

                            if (result.next()) {

                                   for (int k = 0; k < 5; k++) {

                                          string item = select(k);

                                          jieguo = jieguo + result.getstring(item) + ” “;

                                   }

                                   j++;

                                   joptionpane.showmessagedialog(null, jieguo);

                            } else

                                   joptionpane.showmessagedialog(null, “不好意思,好像没有这个人”);

                     } catch (headlessexception e1) {

                            // todo auto-generated catch block

                            e1.printstacktrace();

                     } catch (sqlexception e1) {

                            // todo auto-generated catch block

                            e1.printstacktrace();

                     }

              }  //查询按钮功能

 

              if (e.getsource() == readdatabase) {

                     string sql = “select * from student”;

                     result = database.getresultset(sql);

 

                     try {

                            result.last();

                            int count = result.getrow();

                            data.setrowcount(count);

                            studenttable.setmodel(data);

                            result.beforefirst();

                            int i = 0;

                            while (result.next()) {

                                   for (int h = 0; h < 5; h++) {

                                          string item = select(h);

                                          string tmp = result.getstring(item);

                                          studenttable.setvalueat(tmp, i, h);

                                   }

                                   i++;

                            }

 

                     } catch (sqlexception e1) {

                            e1.printstacktrace();

                     }

              }            //列出数据库所有内容

              if (e.getsource() == deledatabase) {

                     string delename = joptionpane.showinputdialog(“请输入您要删除的姓名”);

                     string sql3 = “select * from student where 姓名=’” + delename + “‘”;

                     result = database.getresultset(sql3);

                     try {

                            if (result.next()) {

                                   database.stat

                                                 .executeupdate(“delete from student where 姓名=’”

                                                               + delename + “‘”);

                                   joptionpane.showmessagedialog(null, “删除成功”);

                            } else

                                   joptionpane.showmessagedialog(null, “不好意思,好像没有这个人”);

                     } catch (sqlexception e1) {

                            // todo auto-generated catch block

                            e1.printstacktrace();

                     }

              }

       }            //删除按钮功能

 

       private string select(int i) {

              string tmp = null;

              switch (i) {

              case 0:

                     tmp = studentno;

                     break;

              case 1:

                     tmp = studentname;

                     break;

              case 2:

                     tmp = studentsex;

                     break;

              case 3:

                     tmp = studentage;

                     break;

              case 4:

                     tmp = studentadd;

                     break;

              default:

                     break;

              }

              return tmp;

       }                       //实现select方法功能

       public static void main(string[] args) {

              // todo auto-generated method stub

              main databasetest = new main();

       }

}

通讯录注册

package javashiyan2;

import java.awt.container;

import java.awt.flowlayout;

import java.awt.gridlayout;

import java.awt.event.actionevent;

import java.awt.event.actionlistener;

import java.sql.connection;

import java.sql.drivermanager;

import java.sql.resultset;

import java.sql.sqlexception;

import java.sql.statement;

import javax.swing.jbutton;

import javax.swing.jframe;

import javax.swing.jlabel;

import javax.swing.joptionpane;

import javax.swing.jpasswordfield;

import javax.swing.jtextfield;

 

//管理员用户注册界面

public class register extends jframe implements actionlistener {

       private container content;

       private jlabel jyonghuming;

       private jlabel jmima;

       private jlabel jmima2;

       private jbutton queding;

       private jbutton quxiao;

       private jtextfield jyonghu;

       private jpasswordfield jpass;

       private jpasswordfield jpass2;//声明各个组件

 

       public register() {

              super(“用户注册”);

              content = getcontentpane();

              gridlayout layout;

              layout = new gridlayout(4, 2, 2, 2);

              content.setlayout(layout);

              queding = new jbutton(“确定”);

              queding.setsize(40, 15);

              queding.addactionlistener(this);

              quxiao = new jbutton(“取消”);

              quxiao.setsize(40, 15);

              quxiao.addactionlistener(this);

              jyonghuming = new jlabel(“请输入用户名”);

              jyonghuming.setsize(90, 60);

              jmima = new jlabel(“请输入密码”);

              jmima.setsize(90, 60);

              jmima2 = new jlabel(“请再次输入密码”);

              jmima2.setsize(90, 60);

              jyonghu = new jtextfield();

              jyonghu.setsize(90, 60);

              jpass = new jpasswordfield();

              jpass.setsize(90, 60);

              jpass2 = new jpasswordfield();

              jpass2.setsize(90, 60);

              content.add(jyonghuming);

              content.add(jyonghu);

              content.add(jmima);

              content.add(jpass);

              content.add(jmima2);

              content.add(jpass2);

              content.add(queding);

              content.add(quxiao);

              setsize(320, 160);

              setvisible(true);

       }                //设置各个组件,并添加到内容面板

 

       private connection con;

       private statement stat2;

 

       void database() {

                     string driverclass = “sun.jdbc.odbc.jdbcodbcdriver”;

              // “com.microsoft.jdbc.sqlserver.sqlserverdriver”;

              string url = “jdbc:odbc:admin”;

 

              try {

                     // 加载jdbc-odbc桥驱动程序,driver类通过调用drivermanager.registerdriver类进行自我注册

                     class.forname(driverclass);

                     // 获得jdbc连接

                     con = drivermanager.getconnection(url, “admin”, “”);

                  // 创建statement对象

                     stat2 = con.createstatement(resultset.type_scroll_insensitive,

                                   resultset.concur_updatable);

              } catch (classnotfoundexception e) {

                     system.out.println(“can not find driver ” + driverclass);

              } catch (sqlexception sqe) {

                     sqe.printstacktrace();

              }

       }          //连接数据库

void closedatabase() {

                  try {

                     stat2.close();

                     con.close();

              } catch (sqlexception exp) {

                     exp.printstacktrace();

              }

        }            //关闭数据库

 

       public void actionperformed(actionevent e) {

              // todo auto-generated method stub

              if (e.getsource() == queding) {

                     string name = jyonghu.gettext();

                     string pass = new string(jpass.getpassword());

                     string pass2 = new string(jpass2.getpassword());

                     if (pass.equals(pass2)) {

                            database();

                            try {

                                   stat2.executeupdate(“insert into admin values(‘” + name

                                                 + “‘,’” + pass + “‘)”);

                            } catch (sqlexception f) {

                                   // todo auto-generated catch block

                                   f.printstacktrace();

                            }

                            joptionpane.showmessagedialog(null, “注册成功,请您登陆”);

                closedatabase();//关闭数据库

                            this.dispose();

 

                     } else

                            joptionpane.showmessagedialog(null, “两次输入的密码不同,请重新输入”);

                     jyonghu.settext(“”);

                     jpass.settext(“”);

                     jpass2.settext(“”);

              }      //按确定按钮后,检查输入的数据后,写入admin数据库,并提示用户登陆

              if (e.getsource() == quxiao) {

                     jyonghu.settext(“”);

                     jpass.settext(“”);

                     jpass2.settext(“”);

              }

       }         //清空内容

 

       public static void main(string[] args) {

              // todo auto-generated method stub

              register register = new register();

       }

 

}

数据库

package javashiyan2;

 

import java.sql.*;

import javax.swing.joptionpane;

public class database {

       public connection con;

       public statement stat;  // 数据库类变量

 

       public database() {

              super();

       }

       void opendatabase() {

              string driverclass = “sun.jdbc.odbc.jdbcodbcdriver”;

              // “com.microsoft.jdbc.sqlserver.sqlserverdriver”;

              string url = “jdbc:odbc:student”;

 

              try {

                     // 加载jdbc-odbc桥驱动程序,driver类通过调用drivermanager.registerdriver类进行自我注册

                     class.forname(driverclass);

                     // 获得jdbc连接

                     con = drivermanager.getconnection(url, “student”, “”);

                     // 创建statement对象

                     stat = con.createstatement(resultset.type_scroll_insensitive,

                                   resultset.concur_updatable);

              } catch (classnotfoundexception e) {

                     system.out.println(“can not find driver ” + driverclass);

              } catch (sqlexception sqe) {

                     sqe.printstacktrace();

              }

       }               // 打开数据库

 

       void closedatabase() {

              try {

                     stat.close();

                     con.close();

                     system.out.println(“成功关闭数据库”);

              } catch (sqlexception exp) {

                     exp.printstacktrace();

              } finally {

                     system.exit(0);

              }

       }            //关闭数据库

 

       void zengtian() {

              string xuehao = joptionpane.showinputdialog(“请输入学号”);

              string xingming = joptionpane.showinputdialog(“请输入姓名”);

              string xingbie = joptionpane.showinputdialog(“请输入性别”);

              string nianling = joptionpane.showinputdialog(“请输入年龄”);

              string dizhi = joptionpane.showinputdialog(“请输入地址”);

              try {

                     stat.executeupdate(“insert into student values(‘” + xuehao + “‘,’”

                                   + xingming + “‘,’” + xingbie + “‘,’” + nianling + “‘,’”

                                   + dizhi + “‘)”);

              } catch (sqlexception e) {

                     // todo auto-generated catch block

                     e.printstacktrace();

              }

       }                   //增添记录

 

       resultset getresultset(string sql) {

              resultset result = null;

              try {

                     result = stat.executequery(sql);

              } catch (sqlexception e) {

                     // todo auto-generated catch block

                     e.printstacktrace();

              }

              return result;

       }

}

顶一下
(0)
100%
踩一下
(0)
100%

我猜您可能喜欢:

Leave a comment

1 Comments.

  1. 厉害。看了,我也想学它了。

    这个评论好不好? Thumb up 0 Thumb down 0

Leave a Reply


[ Ctrl + Enter ]