?? userlogin.java
字號:
package library.user;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import library.hibernate.UserTable;
import library.main.HibernateUtil;
import library.main.LibraryWindow;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
/**
* 用戶登錄類,根據用戶名和密碼查詢用戶相應的權限
*
* @author lianhw
*
*/
public class UserLogin extends JFrame implements ActionListener {
LibraryWindow libraryWindow;
JPanel panel1, panel2;
JLabel userNameLabel, passwordLabel;
JTextField userNameText;
JPasswordField passwordText;
JButton yesButton, cancelButton;
Container container;
ResultSet rs;
public UserLogin(LibraryWindow mainFrame) {
super("用戶登錄");
this.libraryWindow = mainFrame;
// “用戶名”標簽
userNameLabel = new JLabel("用戶名", JLabel.CENTER);
// “密碼”標簽
passwordLabel = new JLabel("密碼", JLabel.CENTER);
// 用戶名輸入框
userNameText = new JTextField(10);
// 密碼輸入框
passwordText = new JPasswordField(10);
// “確定”按鈕
yesButton = new JButton("確定");
// “取消”按鈕
cancelButton = new JButton("取消");
// 為“確定”按鈕增加事件監聽者
yesButton.addActionListener(this);
// 為“取消”按鈕增加事件監聽者
cancelButton.addActionListener(this);
panel1 = new JPanel();
panel1.setLayout(new GridLayout(2, 2));
panel2 = new JPanel();
container = getContentPane();
container.setLayout(new BorderLayout());
panel1.add(userNameLabel);
panel1.add(userNameText);
panel1.add(passwordLabel);
panel1.add(passwordText);
container.add(panel1, BorderLayout.CENTER);
panel2.add(yesButton);
panel2.add(cancelButton);
container.add(panel2, BorderLayout.SOUTH);
// 設置窗口大小
setSize(300, 300);
}
/**
* 動作響應方法,完成數據庫的查詢和權限的設置功能
*
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed(ActionEvent action) {
if (action.getSource() == cancelButton) {
// 如果單擊“取消”按鈕后執行的動作
libraryWindow.setEnable("else");
this.dispose();
} else {
// 如果單擊“確定”按鈕后執行的動作
char[] password = passwordText.getPassword();
// 將用戶輸入的密碼有字符數組轉換成字符串
String passwordStr = new String(password);
// 判斷用戶輸入的用戶名是否為空
if (userNameText.getText().trim().equals("")) {
JOptionPane.showMessageDialog(null, "用戶名不可為空!");
return;
}
// 判斷用戶輸入的密碼是否為空
if (passwordStr.equals("")) {
JOptionPane.showMessageDialog(null, "密碼不可為空!");
return;
}
// 取得SessionFactory
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
// 打開session
Session session = sessionFactory.openSession();
// 創建一個事務
Transaction tx = session.beginTransaction();
// hsql執行語句
String hql = "from UserTable where UserName='"
+ userNameText.getText().trim() + "' and Password='"
+ passwordStr + "'";
// 執行查詢
Query userList = session.createQuery(hql);
// 將查詢結果放置到一個list鏈表中
List list = userList.list();
// 標記該用戶是否存在
boolean isExist = false;
// 如果list的長度為0,表示該用戶不存在
if (list.size() > 0)
isExist = true;
if (!isExist) {
// 提示用戶名和密碼不正確
JOptionPane.showMessageDialog(null, "用戶名不存在或者密碼不正確!");
libraryWindow.setEnable("else");
} else {
// 取得該用戶的權限級別
UserTable user = (UserTable) list.get(0);
// 設置權限
libraryWindow.setEnable(user.getPower().trim());
// 事務提交
tx.commit();
// 關閉session
session.close();
this.dispose();
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -