?? loginframe.java
字號:
package baseinforinterface;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import data.StockManagementData;
import user.User;
import maininterface.*;
public class LoginFrame extends JFrame implements ActionListener {
//聲明窗口控件
JPanel contentPane;
JLabel nameLabel = new JLabel();
JLabel passwordLabel = new JLabel();
JTextField nameTextField = new JTextField();
JPasswordField passwordField = new JPasswordField();
JButton loginBtn = new JButton();
JButton exitBtn = new JButton();
//聲明數據類
StockManagementData stockManagementData = null;
//聲明用戶類
User user = null;
//聲明主窗口類
StockManagementMainFrame stockManagementMainFrame = null;
public LoginFrame(StockManagementMainFrame stockManagementMainFrame) {
//取得主窗口對象
this.stockManagementMainFrame = stockManagementMainFrame;
//取得主窗口的數據對象
stockManagementData = stockManagementMainFrame.getStockManagementData();
try {jbInit();}
catch(Exception e) {e.printStackTrace();}
}
private void jbInit() throws Exception {
//取得窗口面板
contentPane = (JPanel) this.getContentPane();
//定義窗口面板的布局
contentPane.setLayout(null);
//定義窗口的大小和標題
this.setSize(new Dimension(400, 276));
//定義標簽的標題、字符大小和位置
nameLabel.setText("用戶名:");
nameLabel.setFont(new java.awt.Font("Dialog", 0, 15));
nameLabel.setBounds(new Rectangle(65, 67, 81, 16));
passwordLabel.setText("密碼:");
passwordLabel.setFont(new java.awt.Font("Dialog", 0, 15));
passwordLabel.setBounds(new Rectangle(65, 112, 79, 16));
//定義編輯框的位置
nameTextField.setBounds(new Rectangle(194, 67, 118, 22));
passwordField.setBounds(new Rectangle(194, 112, 118, 22));
//定義按鈕的標題、動作字符串、字符大小、位置和加入動作接收器
loginBtn.setText("登陸");
loginBtn.setActionCommand("login");
loginBtn.setFont(new java.awt.Font("Dialog", 0, 15));
loginBtn.setBounds(new Rectangle(65, 180, 109, 25));
loginBtn.addActionListener(this);
exitBtn.setText("退出");
exitBtn.setActionCommand("exit");
exitBtn.setFont(new java.awt.Font("Dialog", 0, 15));
exitBtn.setBounds(new Rectangle(203, 180, 109, 25));
exitBtn.addActionListener(this);
//為面板加入各個控件
contentPane.add(nameLabel, null);
contentPane.add(nameTextField, null);
contentPane.add(passwordLabel, null);
contentPane.add(passwordField, null);
contentPane.add(exitBtn, null);
contentPane.add(loginBtn, null);
}
protected void processWindowEvent(WindowEvent e) {
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
exit();
}
}
//單擊事件處理代碼
public void actionPerformed(ActionEvent e) {
//取得按鈕的動作字符串
String actionCommand = e.getActionCommand().trim();
//取得用戶名
String userName = nameTextField.getText();
//取得密碼
String userPassword = new String(passwordField.getPassword());
if(actionCommand.equals("login")){
int[] result = stockManagementData.checkUser(userName, userPassword);
if(result[0] == -1){
JOptionPane.showMessageDialog(null, "用戶名或者密碼輸入錯誤.");
return;
}else{
//創建用戶類
user = new User(userName, userPassword, result[0], result[1], result[2],
result[3]);
//將用戶類傳入主窗口
stockManagementMainFrame.setUser(user);
//更改主窗口的標題
stockManagementMainFrame.setTitle("進銷存管理信息系統主窗口" + ":登陸用戶("
+ userName + ")");
//將用戶登陸信息寫入日志數據表
stockManagementData.createUserLog("登陸窗口", "登陸", userName);
}
exit();
}
if(actionCommand.equals("exit")){
exit();
}
}
//退出方法
public void exit(){
//將輸入框的值設為空值
nameTextField.setText("");
passwordField.setText("");
//隱藏登陸窗口
this.setVisible(false);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -