Java swing圖書管理系統(tǒng)1(個(gè)人設(shè)計(jì)思考得出的全功能簡(jiǎn)易原版)




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("重置密碼頁(yè)面");
this.setSize(500, 500);
this.setLocationRelativeTo(null);
this.setVisible(true);
JLabel1 = new JLabel("請(qǐng)輸入密碼");
JLabel2 = new JLabel("請(qǐng)?jiān)俅屋斎朊艽a");
JLabel1.setBounds(100, 100, 100, 30);
this.add(JLabel1);
JLabel2 = new JLabel("請(qǐng)?jiān)俅屋斎朊艽a");
JLabel2.setBounds(100, 140, 100, 30);
this.add(JLabel2);
JButton_QuRen = new JButton("確認(rèn)修改");
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;
/*
* 個(gè)人理解:先聲明空的窗口(chuangKou),之后屬性都儲(chǔ)存到窗口中,之后傳值(chuanzhi)賦值給窗口的所有屬性,
* 因?yàn)椤癱hongzhimimajiemian
* chuanzhi”的聲明,chuanzhi有chongzhimimajiemian中的所有內(nèi)容
*/
}
@Override
public void actionPerformed(ActionEvent arg0) {
if (arg0.getActionCommand().equals("確認(rèn)修改")) {
JOptionPane.showMessageDialog(null, "點(diǎn)擊了修改密碼按鈕");
// 點(diǎn)擊了“確認(rèn)修改”之后要用if比較一下兩個(gè)密碼輸入的是否一致
String pwd1 = chuangKou.JPasswordField_qslmm1.getText();
String pwd2 = chuangKou.JPasswordField_qslmm2.getText();
if (pwd1.equals(pwd2)) {
// 如果相等就做進(jìn)一步的修改密碼
// SQL語(yǔ)句如何加條件:就是where后面加上zhmm(找回密碼)頁(yè)面的uname屬性,可以直接調(diào)用
// 聲明一個(gè)工具類,用來保存用戶要修改的用戶名,什么時(shí)候想要使用直接調(diào)用就好
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, "出現(xiàn)了未知的錯(cuò)誤,請(qǐng)重試!");
}
} 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封裝了對(duì)JDBC的操作,簡(jiǎn)化了JDBC操作??梢陨賹懘a。
?1對(duì)于數(shù)據(jù)表的讀操作,他可以把結(jié)果轉(zhuǎn)換成List,Aray, Set等java集合, 便于程序員操作:
?2.對(duì)于數(shù)據(jù)表的寫操作,也變得很簡(jiǎn)單(只需寫sql語(yǔ)句)
?3.可以使用數(shù)據(jù)源,使用JNDI, 數(shù)據(jù)庫(kù)連接池等技術(shù)來優(yōu)化性能-重用已經(jīng)構(gòu)建好的數(shù)據(jù)庫(kù)連
?注意,在使用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為用于查找的靜態(tài)方法 */
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)的靜態(tài)方法,命名不可太長(zhǎng)不然這里會(huì)不管用 */
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;
// 聲明一個(gè)全局的用戶信息變量
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(下標(biāo)為0的值), arg1, arg2, arg3);
JButton_qx.addActionListener(new shijian_denglu(this));
JButton_zc = new JButton("普通用戶注冊(cè)");
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, "點(diǎn)擊");
//
// if (arg0.getActionCommand().equals("管理員用戶登錄")) {
//
// String uname = shijian_dengLu1.JTextField_unametxt1.getText()
//
// .trim();// 從shijian_dengLu1中的JTextField_unametxt1獲取用戶輸入的用戶名文本內(nèi)容
//
// 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中的內(nèi)容,如果res中有數(shù)據(jù),登錄成功,否則登錄失敗
//
// 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,
// "用戶名或密碼錯(cuò)誤或你不是管理員用戶或用戶類型選擇錯(cuò)誤");
//
// }
//
// } catch (SQLException e) {
//
// e.printStackTrace();
//
// }
//
// }
//
// if (arg0.getActionCommand().equals("普通用戶登錄")) {
//
// String uname = shijian_dengLu1.JTextField_unametxt1.getText()
//
// .trim();// 從shijian_dengLu1中的JTextField_unametxt1獲取用戶輸入的用戶名文本內(nèi)容
//
// 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中的內(nèi)容,如果res中有數(shù)據(jù),登錄成功,否則登錄失敗
//
// 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,
// "用戶名或密碼錯(cuò)誤或你不是普通用戶或用戶類型選擇錯(cuò)誤");
//
// }
//
// } catch (SQLException e) {
//
// e.printStackTrace();
//
// }
//
// }
//
// else if (arg0.getActionCommand().equals("普通用戶注冊(cè)")) {
//
// JOptionPane.showMessageDialog(null, "點(diǎn)擊了注冊(cè)按鈕");
//
// new zhuCe();
//
// } else if (arg0.getActionCommand().equals("找回密碼")) {
//
// JOptionPane.showMessageDialog(null, "點(diǎn)擊了找回密碼按鈕");
//
// new zhaoHuiMiMa();
//
// // dd. setVisible(false);
//
// } else if (arg0.getActionCommand().equals("取消")) {
//
// JOptionPane.showMessageDialog(null, "點(diǎn)擊了取消按鈕");
//
// // 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("管理員用戶")) {
// 執(zhí)行管理員登錄
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);
// 到這個(gè)位置已經(jīng)將用戶登錄成功的信息保存起來了,
// 再需要的時(shí)候直接調(diào)用一下即可
denglu.user_chuanZhi = yh;
d.setVisible(false);// 隱藏掉當(dāng)前界面
// 在登錄的位置設(shè)置一個(gè)全局變量,用戶登錄成功即可將用戶信息保存到該變量里
// 打開主界面的時(shí)候去調(diào)用這個(gè)變量,將用戶信息賦值到相應(yīng)控件
} else {
JOptionPane.showMessageDialog(null,
"用戶名或密碼錯(cuò)誤或你不是管理員用戶或用戶類型選擇錯(cuò)誤");
}
} 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);
// 到這個(gè)位置已經(jīng)將用戶登錄成功的信息保存起來了,
// 再需要的時(shí)候直接調(diào)用一下即可
denglu.user_chuanZhi = yh;
d.setVisible(false);// 隱藏掉當(dāng)前界面
// 在登錄的位置設(shè)置一個(gè)全局變量,用戶登錄成功即可將用戶信息保存到該變量里
// 打開主界面的時(shí)候去調(diào)用這個(gè)變量,將用戶信息賦值到相應(yīng)控件
} else {
JOptionPane.showMessageDialog(null,
"用戶名或密碼錯(cuò)誤或你不是管理員用戶或用戶類型選擇錯(cuò)誤");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 管理員登錄要做什么事?
// 1.獲取輸入的用戶名和密碼
// 2.得到用戶的類型
// 3.判斷用戶輸入是否正確,去數(shù)據(jù)庫(kù)
// 4.得到結(jié)果,判斷是否登錄成功
} else if (arg0.getActionCommand().equals("普通用戶注冊(cè)")) {
new zhuCe();
} else if (arg0.getActionCommand().equals("找回密碼")) {
JOptionPane.showMessageDialog(null, "點(diǎn)擊了找回密碼按鈕");
new zhaoHuiMiMa();
// dd. setVisible(false);
}
}
}
