Java swing图书管理系统1(个人设计思考得出的全功能简易原版)




package denglu;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
public class chongzhimimajiemian extends JFrame {
static JButton JButton_QuRen = null;
static JLabel JLabel1, JLabel2 = null;
static JPasswordField JPasswordField_qslmm1, JPasswordField_qslmm2 = null;
public chongzhimimajiemian() {
this.setLayout(null);
this.setTitle("重置密码页面");
this.setSize(500, 500);
this.setLocationRelativeTo(null);
this.setVisible(true);
JLabel1 = new JLabel("请输入密码");
JLabel2 = new JLabel("请再次输入密码");
JLabel1.setBounds(100, 100, 100, 30);
this.add(JLabel1);
JLabel2 = new JLabel("请再次输入密码");
JLabel2.setBounds(100, 140, 100, 30);
this.add(JLabel2);
JButton_QuRen = new JButton("确认修改");
JButton_QuRen.setBounds(100, 290, 150, 30);
this.add(JButton_QuRen);
JButton_QuRen.addActionListener(new shijian_queRenXiuGai(this));
JPasswordField_qslmm1 = new JPasswordField();
JPasswordField_qslmm2 = new JPasswordField();
JPasswordField_qslmm1.setBounds(280, 100, 100, 30);
JPasswordField_qslmm2.setBounds(280, 140, 100, 30);
this.add(JPasswordField_qslmm1);
this.add(JPasswordField_qslmm2);
}
}
class shijian_queRenXiuGai implements ActionListener {
static chongzhimimajiemian chuangKou = null;
public shijian_queRenXiuGai(chongzhimimajiemian chuanzhi) {
this.chuangKou = chuanzhi;
/*
* 个人理解:先声明空的窗口(chuangKou),之后属性都储存到窗口中,之后传值(chuanzhi)赋值给窗口的所有属性,
* 因为“chongzhimimajiemian
* chuanzhi”的声明,chuanzhi有chongzhimimajiemian中的所有内容
*/
}
@Override
public void actionPerformed(ActionEvent arg0) {
if (arg0.getActionCommand().equals("确认修改")) {
JOptionPane.showMessageDialog(null, "点击了修改密码按钮");
// 点击了“确认修改”之后要用if比较一下两个密码输入的是否一致
String pwd1 = chuangKou.JPasswordField_qslmm1.getText();
String pwd2 = chuangKou.JPasswordField_qslmm2.getText();
if (pwd1.equals(pwd2)) {
// 如果相等就做进一步的修改密码
// SQL语句如何加条件:就是where后面加上zhmm(找回密码)页面的uname属性,可以直接调用
// 声明一个工具类,用来保存用户要修改的用户名,什么时候想要使用直接调用就好
String uname = gongjvClass.uname;// 获取到用户要修改的用户名
String sql = "update yonghu set yh_pwd='" + pwd1
+ "' where yh_uname= '" + uname + "'";
if (DBUtils.ZSG(sql)) {
JOptionPane.showMessageDialog(null, "密码重置成功");
} else {
JOptionPane.showMessageDialog(null, "出现了未知的错误,请重试!");
}
} else {
// 不相等就提示用户两次密码输入不一致
JOptionPane.showMessageDialog(null, "两次密码输入不一致");
return;
}
}
}
}


package denglu;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/*DBUtis封装了对JDBC的操作,简化了JDBC操作。可以少写代码。
1对于数据表的读操作,他可以把结果转换成List,Aray, Set等java集合, 便于程序员操作:
2.对于数据表的写操作,也变得很简单(只需写sql语句)
3.可以使用数据源,使用JNDI, 数据库连接池等技术来优化性能-重用已经构建好的数据库连
注意,在使用DBUtis过程中,需要在C3P0Utils中添加getDateSource方法。*/
public class DBUtils {
private static Connection con = null;
private static ResultSet res = null;
private static Statement sta = null;
static {
try {
Class.forName("com.microsoft.sqlserver." + "jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getCon() {
if (con == null) {
try {
con = DriverManager.getConnection(
"jdbc:sqlserver://DESKTOP-49FTFSP;"
+ "databaseName=yonghu", "sa", "1234abcd");
} catch (SQLException e) {
e.printStackTrace();
}
}
return con;
}
public static ResultSet Select(String sql) {
/* Select为用于查找的静态方法 */
con = getCon();
try {
sta = con.createStatement();
res = sta.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return res;
}
public static boolean ZSG(String sql) {
/* ZXG为用于增加(Z)或修改(G)或删除(S)的静态方法,命名不可太长不然这里会不管用 */
boolean b = false;
con = getCon();
try {
sta = con.createStatement();
int num = sta.executeUpdate(sql);
if (num > 0) {
b = true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return b;
}
}


package denglu;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class denglu extends JFrame {
public static JButton JButton_dl, JButton_qx, JButton_zc,
JButton_zhmm, JButton_gly = null;
static JComboBox JComboBox_type = null;
public static JLabel JLabel_uname, JLabel_pwd, lb_img,
JLabel_yh_type = null;
public static JPasswordField JPasswordField_pwd1 = null;
public static JTextField JTextField_unametxt1 = null;
// 声明一个全局的用户信息变量
public static yonghu user_chuanZhi;
public JPanel JPanel1 = null;
public denglu() {
this.setLayout(null);
this.setSize(640, 400);
this.setLocationRelativeTo(null);
JLabel_uname = new JLabel("用户名");
JLabel_pwd = new JLabel("密码");
JLabel_yh_type = new JLabel("用户类型");
JComboBox_type = new JComboBox();
JComboBox_type.addItem("普通用户");
JComboBox_type.addItem("管理员用户");
JComboBox_type.setBounds(180, 180, 140, 30);
JLabel_yh_type.setBounds(110, 180, 70, 30);
this.add(JComboBox_type);
this.add(JLabel_yh_type);
JLabel_uname.setBounds(110, 100, 70, 30);
JLabel_pwd.setBounds(110, 140, 70, 30);
// 图片
lb_img = new JLabel();
lb_img.setBounds(30, 0, 580, 100);
lb_img.setIcon(new ImageIcon("img//beijing.gif"));
JPanel1 = new JPanel();
JPanel1.setLayout(null);
JPanel1.setBounds(30, 0, 580, 100);
JPanel1.add(lb_img);
this.add(JPanel1);
this.add(JLabel_uname);
this.add(JLabel_pwd);
// JTextField_unametxt1 = new JTextField("1");//写死
JTextField_unametxt1 = new JTextField();// 没写死
JPasswordField_pwd1 = new JPasswordField();
JTextField_unametxt1.setBounds(180, 100, 140, 30);
JPasswordField_pwd1.setBounds(180, 140, 140, 30);
this.add(JTextField_unametxt1);
this.add(JPasswordField_pwd1);
JButton_dl = new JButton("登录");
JButton_dl.setBounds(60, 220, 130, 35);
JButton_dl.addActionListener(new shijian_denglu(this));
JButton_qx = new JButton("取消");
JButton_qx.setBounds(250, 280, 70, 35);
// JButton_gly = new JButton("管理员用户登录");
// JButton_gly.setBounds(60, 280, 130, 35);
// JButton_gly.addActionListener(new shijian_denglu(this));
// JButton_qx.setBounds(arg0(下标为0的值), arg1, arg2, arg3);
JButton_qx.addActionListener(new shijian_denglu(this));
JButton_zc = new JButton("普通用户注册");
JButton_zc.setBounds(250, 220, 120, 35);
JButton_zc.addActionListener(new shijian_denglu(this));
JButton_zhmm = new JButton("找回密码");
JButton_zhmm.setBounds(430, 220, 90, 35);
JButton_zhmm.addActionListener(new shijian_denglu(this));
this.add(JButton_zc);
this.add(JButton_dl);
this.add(JButton_qx);
this.add(JButton_zhmm);
// this.add(JButton_gly);
// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
// class shijian_denglu implements ActionListener {
//
// public denglu shijian_dengLu1 = null;
//
// public shijian_denglu(denglu shijian_dengLu2) {
//
// shijian_dengLu1 = shijian_dengLu2;
//
// }
//
// @Override
// public void actionPerformed(ActionEvent arg0) {
//
// // JOptionPane.showMessageDialog(null, "点击");
//
// if (arg0.getActionCommand().equals("管理员用户登录")) {
//
// String uname = shijian_dengLu1.JTextField_unametxt1.getText()
//
// .trim();// 从shijian_dengLu1中的JTextField_unametxt1获取用户输入的用户名文本内容
//
// String pwd = shijian_dengLu1.JPasswordField_pwd1.getText().trim();// 获取密码
// String String_type = shijian_dengLu1.JComboBox_type
// .getSelectedItem().toString();
//
// String sql = "select * from yonghu where yh_uname='" + uname
//
// + "'and yh_pwd='" + pwd + "' and yh_type='" + String_type + "'";
//
// ResultSet res = DBUtils.Select(sql);
//
// try {// res.next()表明寻找res中的内容,如果res中有数据,登录成功,否则登录失败
//
// if (res.next()) {
// // JOptionPane.showMessageDialog(null, "查到信息了");
// // yonghu yh = new yonghu();
// // yh.setYh_id(res.getInt("yh_id"));
// // yh.setYh_uname(res.getString("yh_uname"));
// // yh.setYh_pwd(res.getString("yh_pwd"));
// // yh.setYh_name(res.getString("yh_name"));
// // yh.setYh_phone(res.getString("yh_phone"));
// // yh.setYh_sex(res.getString("yh_sex"));
// // JOptionPane.showMessageDialog(null, "登录成功");
// new dengLuHouJieMian(uname);
//
// // denglu.user_xinxi = yh;
// // shijian_dengLu1.setVisible(false);
//
// } else {
//
// JOptionPane.showMessageDialog(null,
// "用户名或密码错误或你不是管理员用户或用户类型选择错误");
//
// }
//
// } catch (SQLException e) {
//
// e.printStackTrace();
//
// }
//
// }
//
// if (arg0.getActionCommand().equals("普通用户登录")) {
//
// String uname = shijian_dengLu1.JTextField_unametxt1.getText()
//
// .trim();// 从shijian_dengLu1中的JTextField_unametxt1获取用户输入的用户名文本内容
//
// String pwd = shijian_dengLu1.JPasswordField_pwd1.getText().trim();// 获取密码
// String String_type = shijian_dengLu1.JComboBox_type
// .getSelectedItem().toString();
//
// // JTextField_unametxt1 = new JTextField(uname);
// //
// // JPasswordField_pwd1 = new JPasswordField(pwd);
// String sql = "select * from yonghu where yh_uname='" + uname
//
// + "'and yh_pwd='" + pwd + "'and yh_type='" + String_type + "'";
//
// ResultSet res = DBUtils.Select(sql);
//
// try {// res.next()表明寻找res中的内容,如果res中有数据,登录成功,否则登录失败
//
// if (res.next()) {
//
// JOptionPane.showMessageDialog(null, "查到信息了");
// yonghu yh = new yonghu();
// yh.setYh_id(res.getInt("yh_id"));
// yh.setYh_uname(res.getString("yh_uname"));
// yh.setYh_pwd(res.getString("yh_pwd"));
// yh.setYh_name(res.getString("yh_name"));
// yh.setYh_phone(res.getString("yh_phone"));
// yh.setYh_sex(res.getString("yh_sex"));
// JOptionPane.showMessageDialog(null, "登录成功");
// new dengLuHouJieMian(uname);
//
// denglu.user_xinxi = yh;
// // shijian_dengLu1.setVisible(false);
// } else {
//
// JOptionPane.showMessageDialog(null,
// "用户名或密码错误或你不是普通用户或用户类型选择错误");
//
// }
//
// } catch (SQLException e) {
//
// e.printStackTrace();
//
// }
//
// }
//
// else if (arg0.getActionCommand().equals("普通用户注册")) {
//
// JOptionPane.showMessageDialog(null, "点击了注册按钮");
//
// new zhuCe();
//
// } else if (arg0.getActionCommand().equals("找回密码")) {
//
// JOptionPane.showMessageDialog(null, "点击了找回密码按钮");
//
// new zhaoHuiMiMa();
//
// // dd. setVisible(false);
//
// } else if (arg0.getActionCommand().equals("取消")) {
//
// JOptionPane.showMessageDialog(null, "点击了取消按钮");
//
// // dd. setVisible(false);
//
// }
//
// }
//
// }
class shijian_denglu implements ActionListener {
public denglu d = null;
public shijian_denglu(denglu d) {
this.d = d;
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
String uname = d.JTextField_unametxt1.getText().trim();
String pwd = d.JPasswordField_pwd1.getText().trim();// 获取密码
String type = d.JComboBox_type.getSelectedItem().toString();
if (arg0.getActionCommand().equals("登录")) {
if (type.equals("管理员用户")) {
// 执行管理员登录
String sql = "select * from yonghu where yh_uname='" + uname
+ "' and yh_pwd='" + pwd + "' and yh_type='" + type
+ "'";
System.out.println(sql);
ResultSet res = Model.DBUlits.select(sql);
try {
if (res.next()) {
yonghu yh = new yonghu();
yh.setYh_id(res.getInt("yh_id"));
yh.setYh_uname(res.getString("yh_uname"));
yh.setYh_pwd(res.getString("yh_pwd"));
yh.setYh_name(res.getString("yh_name"));
yh.setYh_phone(res.getString("yh_phone"));
yh.setYh_sex(res.getString("yh_sex"));
// 如果用户名和密码以及类型没有问题,打开主界面
new dengLuHouJieMian(uname);
// 到这个位置已经将用户登录成功的信息保存起来了,
// 再需要的时候直接调用一下即可
denglu.user_chuanZhi = yh;
d.setVisible(false);// 隐藏掉当前界面
// 在登录的位置设置一个全局变量,用户登录成功即可将用户信息保存到该变量里
// 打开主界面的时候去调用这个变量,将用户信息赋值到相应控件
} else {
JOptionPane.showMessageDialog(null,
"用户名或密码错误或你不是管理员用户或用户类型选择错误");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if (type.equals("普通用户")) {
// 普通用户登录
String sql = "select * from yonghu where yh_uname='" + uname
+ "' and yh_pwd='" + pwd + "' and yh_type='" + type
+ "'";
System.out.println(sql);
ResultSet res = Model.DBUlits.select(sql);
try {
if (res.next()) {
yonghu yh = new yonghu();
yh.setYh_id(res.getInt("yh_id"));
yh.setYh_uname(res.getString("yh_uname"));
yh.setYh_pwd(res.getString("yh_pwd"));
yh.setYh_name(res.getString("yh_name"));
yh.setYh_phone(res.getString("yh_phone"));
yh.setYh_sex(res.getString("yh_sex"));
// 如果用户名和密码以及类型没有问题,打开主界面
new ptjiemian(uname);
// 到这个位置已经将用户登录成功的信息保存起来了,
// 再需要的时候直接调用一下即可
denglu.user_chuanZhi = yh;
d.setVisible(false);// 隐藏掉当前界面
// 在登录的位置设置一个全局变量,用户登录成功即可将用户信息保存到该变量里
// 打开主界面的时候去调用这个变量,将用户信息赋值到相应控件
} else {
JOptionPane.showMessageDialog(null,
"用户名或密码错误或你不是管理员用户或用户类型选择错误");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 管理员登录要做什么事?
// 1.获取输入的用户名和密码
// 2.得到用户的类型
// 3.判断用户输入是否正确,去数据库
// 4.得到结果,判断是否登录成功
} else if (arg0.getActionCommand().equals("普通用户注册")) {
new zhuCe();
} else if (arg0.getActionCommand().equals("找回密码")) {
JOptionPane.showMessageDialog(null, "点击了找回密码按钮");
new zhaoHuiMiMa();
// dd. setVisible(false);
}
}
}
