班级通讯录管理系统(java大作业完美版) 下载本文

5

三、 详细设计

1、 登录界面的搭建 login.java

运用了PS设计一些icon以及页面布局方法,实现了登录界面的美化。(详细代码请看工程文件夹下文件login.java) 3、 登录窗口功能的实现

login.java、DButil.java

提供了登录校验方法,包括账号密码合法性、修改密码、注册等。(详细代码请看工程文件夹下文件login.java、 DButil.java) 4、 主窗体的搭建及功能 MainFrame.java

窗体界面布局,各个事件的监听以及实现。如:查询操作。(详细代码请看工程文件夹下文件MainFrame.java)

5、 登录窗体及联系人信息管理窗体所用到的数据库操作方法 DButil.java

定义各种数据库操作方法。如:登录验证、注册、查询、插入等。(详细代码请看工程文件夹下文件DButil.java)

2、 登录界面的搭建

6

3、 package Frame;

4、 import java.awt.*;

5、 import java.awt.event.ActionEvent; 6、 import java.awt.event.ActionListener; 7、 import java.sql.*; 8、 import javax.swing.*; 9、 import db.DButil;

10、 public class login extends JFrame implements

ActionListener{ 11、 private JPanel jp=new JPanel(); 12、 //创建标签数组 13、 private JLabel[] jlArray={new JLabel(\用户名\), new

JLabel(\密 码\),new JLabel(\)}; 14、 15、 private JButton jb1; 16、 private JButton jb2; 17、 private JButton jb3; 18、 private JTextField jtf=new JTextField(); 19、 private JPasswordField jpf=new JPasswordField(); 20、 21、 //布局构造实现方法 22、 23、 public login(){ 24、 Icon icon1=new ImageIcon(\); 25、 Icon icon2=new ImageIcon(\); 26、 Icon icon3=new ImageIcon(\); 27、 28、 JPanel jp=new JPanel(){ 29、 protected void paintComponent(Graphics g) { 30、 ImageIcon icon = new

ImageIcon(\); 31、 Image img = icon.getImage(); 32、 g.drawImage(img, 0, 0,

icon.getIconWidth(), icon.getIconHeight(), icon.getImageObserver()); 33、 }}; 34、 jp.setLayout(null); 35、 jb1=new JButton(icon1); 36、 jb2=new JButton(icon3); 37、 jb3=new JButton(icon2); 38、 jlArray[0].setBounds(70,120,90,32); 39、 jb1.setBounds(365,110,130,60); 40、 jb2.setBounds(365,170,130,60); 41、 jlArray[1].setBounds(70,170,90,32); 42、 //将标签与按钮添加到JPanel容器中 43、 jp.add(jlArray[0]); 44、 jp.add(jlArray[1]); 45、 jp.add(jb1); 46、 jp.add(jb2); 47、 jb1.addActionListener(this); 48、 jb2.addActionListener(this);//为按钮注册动作事

件监听器 49、 //添加修改密码的按钮

7

50、 jb3.setBounds(365,230,130,60); 51、 jp.add(jb3); 52、 jp.add(jtf); 53、 jtf.setBounds(140,120,180,30);//设置文本框位置 54、 jp.add(jpf); 55、 jpf.setBounds(140,170,180,30);//设置密码框位置 56、 jpf.setEchoChar('*'); //密码显示字符形式 57、 jpf.addActionListener(this); //为密码框注册

动作事件监听器 58、 this.setVisible(true);//设置窗体的可见性 59、 jpf.addActionListener(this); //为密码框注册

动作事件监听器 60、 //设置用于显示登陆状态的标签大小位置,并将其添加进

JPanel容器 61、 jlArray[2].setBounds(70,220,300,30); 62、 jp.add(jlArray[2]); 63、 this.setTitle(\登陆\);//设置窗体标题 64、 this.setBounds(450,200,500,318);//设置窗体的大

小 65、 this.setResizable(false);//设置窗体不让用户调整

大小 66、

this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 67、 this.setVisible(true);//设置窗体的可见性 68、 this.add(jp);//将窗体添加到面板中 69、 jp.setBackground(Color.blue);

70、

}

71、 public static void main(String[] args) { 72、 new login();//创建登陆窗体 }

73、 }

6、 登录窗口功能的实现

public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub //得到用户名与密码 String user=jtf.getText().trim(); String pwd=String.valueOf(jpf.getPassword());//返回密码的字符串表示方式 String sql=\; if(e.getSource()==jtf){//事件源为文本框,切换焦点到密码框 jpf.requestFocus(); } else if(e.getSource()==jb1||e.getSource()==jpf){ //判断用户名和密码是否匹配 查询数据库 if(DButil.check(user, pwd)){ //登陆成功 MainFrame mf=new MainFrame(jtf.getText());//主窗体 this.dispose(); } else{ //登陆失败 jlArray[2].setText(\对不起,非法的用户名和密码\); this.clear(); } }

8

else if(e.getSource()==jb2) {//事件源为注册按钮 if(user.equals(\)||pwd.equals(\)) {//如果注册的用户名为空或者密码为空 jlArray[2].setText(\用户名和密码都不得为空!!!\); this.clear();//清空输入文本框 } else { sql=\+user+\; if(DButil.isExist(sql)) {//用户名已经存在 jlArray[2].setText(\对不起,用户名已存在!!!\); this.clear();//清空输入文本框 } else { sql=\values('\+user+\+pwd+\; if(DButil.update(sql)>0) {//注册成功 jlArray[2].setText(\恭喜您!!!注册成功,请登陆\); } } } } else if(e.getSource()==jb3)//修改密码的监听 { //判断是否已经输入用户名和密码 if(user.equals(\)||pwd.equals(\)) { jlArray[2].setText(\修改密码先输入正确的用户名和密码!!!\); this.clear();//清空输入文本框 } //判断是否输入了正确的用户名和密码 else if(DButil.check(user,pwd)) { //正确的用户名和密码 String password=JOptionPane.showInputDialog(this,\修改密码:\,\请输入新密码\, JOptionPane.PLAIN_MESSAGE); //得到新的密码为空 if(password==null||password.equals(\)) { JOptionPane.showMessageDialog(this,\密码不得为空!!!\,\错误\, JOptionPane.WARNING_MESSAGE); } else {//密码不为空 sql=\+password+%uid='\+user+\;//更新密码的SQL if(DButil.update(sql)>0) {//密码修改成功