📄 loginframe.java
字号:
package test1;
/*
购物系统所有类中的注释和命名请参照本类!
1、凡是自己定义的类、成员变量、类变量、方法前均要有文档注释,方法中关键语句也要有必要的注释。
2、类、变量和方法的命名要做到“见名知意”!
验收项目要检查代码规范!
*/
import javax.swing.*;
import java.awt.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.sql.*;
import java.awt.Rectangle;
import java.util.*;
/**
* 登录界面类,顾客,业务员和管理员都在本界面登录,
* 只是登录成功后进入的界面不同。
* 还可以通过本界面注册新顾客
* @author 王亚南
* @version 1.0 2007/11/21
*/
public class LoginFrame
extends JFrame {
static ResourceBundle text =
ResourceBundle.getBundle("login",Locale.US);
JPanel fieldPanel = new JPanel();
JPanel buttonPanel = new JPanel();
TitledBorder fieldBorder;
TitledBorder buttonBorder;
JLabel userIDLabel = new JLabel();
JLabel passwordLabel = new JLabel();
JTextField userNameField = new JTextField();
JPasswordField passwordField = new JPasswordField();
JLabel namePrompt = new JLabel();
JLabel passwordPrompt = new JLabel();
JButton loginButton = new JButton();
JButton cancelButton = new JButton();
JLabel userTypeLabel = new JLabel();
JButton registButton = new JButton();
/**整型常量0代表"顾客"用户类型*/
public static final int CUSTOMER = 0;
/**整型常量1代表"业务员"用户类型*/
public static final int EMPLOYEE = 1;
/**整型常量2代表"管理员"用户类型*/
public static final int MANAGER = 2;
/**用户类型字符串数组,用于设置JComboBox的值*/
String[] userTypes = {
text.getString("UserType_Customer"),
text.getString("UserType_Operator"), text.getString("UserType_Admin")};
/**用户类型组合框对象*/
JComboBox userTypeComboBox = new JComboBox(userTypes);
/**用于指向登录成功打开的窗口对象*/
JFrame frame;
/**登录输入的用户名*/
String loginName;
/**登录输入的用户密码*/
String password;
/**登录选择的用户类型*/
int userType;
/**登录时执行SQL语句的PreparedStatement对象*/
private PreparedStatement loginStmt;
/**登录时执行查询SQL语句返回的ResultSet结果集对象*/
ResultSet rs;
/**
* 构造方法
* @author 王亚南
* @version 1.0 2007/11/21
*/
public LoginFrame() {
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
}
/**
* 初始化图形用户界面
* @param
* @return void
* @author 王亚南
* @version 1.0 2007/11/21
*/
private void jbInit() throws Exception {
this.setResizable(false);
this.setTitle(text.getString("WelcomeWords"));
this.getContentPane().setLayout(null);
userIDLabel.setFont(new java.awt.Font("Serif", 0, 12));
userIDLabel.setText(text.getString("UserName"));
userIDLabel.setBounds(new Rectangle(28, 25, 68, 32));
passwordLabel.setFont(new java.awt.Font("Serif", 0, 12));
passwordLabel.setText(text.getString("Password"));
passwordLabel.setBounds(new Rectangle(28, 77, 68, 32));
userNameField.setFont(new java.awt.Font("Serif", 0, 12));
userNameField.setText("");
userNameField.setBounds(new Rectangle(102, 27, 122, 24));
userNameField.addActionListener(new
LoginFrame_userNameField_actionAdapter(this));
passwordField.setBounds(new Rectangle(102, 81, 122, 24));
passwordField.addActionListener(new
LoginFrame_cancelButton_actionAdapter(this));
userTypeComboBox.setFont(new java.awt.Font("Serif", 0,
12));
userTypeComboBox.setBounds(new Rectangle(102, 136, 122, 24));
loginButton.setBounds(new Rectangle(14, 6, 62, 25));
loginButton.setFont(new java.awt.Font("Serif", 0, 12));
loginButton.setText(text.getString("Button_Login"));
loginButton.addActionListener(new LoginFrame_loginButton_actionAdapter(this));
cancelButton.setBounds(new Rectangle(83, 6, 71, 25));
cancelButton.setFont(new java.awt.Font("Serif", 0, 12));
cancelButton.setText(text.getString("Button_Cancel"));
cancelButton.addActionListener(new LoginFrame_jButton2_actionAdapter(this));
registButton.setBounds(new Rectangle(163, 5, 77, 25));
registButton.setText(text.getString("Button_Register"));
registButton.addActionListener(new
LoginFrame_registButton_actionAdapter(this));
userTypeLabel.setText(text.getString("Label_UserType"));
userTypeLabel.setBounds(new Rectangle(28, 134, 68, 32));
fieldBorder = new TitledBorder(text.getString("FieldBorderTitle"));
buttonBorder = new TitledBorder("");
fieldPanel.setBorder(fieldBorder);
fieldPanel.setBounds(new Rectangle(47, 25, 361, 185));
fieldPanel.setLayout(null);
namePrompt.setForeground(Color.red);
namePrompt.setText(text.getString("Label_NamePrompt"));
namePrompt.setBounds(new Rectangle(233, 25, 120, 32));
passwordPrompt.setForeground(Color.red);
passwordPrompt.setText(text.getString("Label_PasswordPrompt"));
passwordPrompt.setBounds(new Rectangle(233, 77, 90, 32));
fieldPanel.add(passwordField, null);
fieldPanel.add(userTypeComboBox);
fieldPanel.add(userNameField, null);
fieldPanel.add(userTypeLabel);
fieldPanel.add(userIDLabel, null);
fieldPanel.add(passwordLabel, null);
fieldPanel.add(namePrompt);
fieldPanel.add(passwordPrompt);
buttonPanel.setLayout(null);
buttonPanel.add(loginButton, null);
buttonPanel.add(cancelButton, null);
buttonPanel.add(registButton);
this.getContentPane().add(fieldPanel, null);
buttonPanel.setBorder(buttonBorder);
buttonPanel.setBounds(new Rectangle(85, 220, 254, 35));
this.getContentPane().add(buttonPanel, null);
}
/**
* 验证输入的方法
* @param
* @return boolean,输入合法返回true,输入不合法返回false
* @author 王亚南
* @version 1.0 2007/11/21
*/
boolean validatePass() {
String str = userNameField.getText().trim();
if (str.equals("")) {
JOptionPane.showMessageDialog(this,
"<html><font color=red>" +
text.getString(
"Message_InputUserName") +
"</font></html>",
text.getString("Error_Input"),
JOptionPane.ERROR_MESSAGE);
userNameField.grabFocus();
return false;
}
if ( (str.length() < 4) || (str.length() > 10)) {
JOptionPane.showMessageDialog(this,
"<html><font color=red>" +
text.getString(
"Message_ShortUserName") +
"</font></html>",
text.getString("Error_Input"),
JOptionPane.ERROR_MESSAGE);
userNameField.grabFocus();
return false;
}
loginName = str;
char[] ps = passwordField.getPassword();
str = new String(ps).trim();
if (str.equals("")) {
JOptionPane.showMessageDialog(this,
"<html><font color=red>" +
text.getString(
"Message_InputPassword") +
"</font></html>",
text.getString("Error_Input"),
JOptionPane.ERROR_MESSAGE);
passwordField.grabFocus();
return false;
}
if (str.length() != 6) {
JOptionPane.showMessageDialog(this,
"<html><font color=red>" +
text.getString(
"Message_ShortPassword") +
"</font></html>",
text.getString("Error_Input"),
JOptionPane.ERROR_MESSAGE);
passwordField.grabFocus();
return false;
}
password = str;
return true;
}
/**
*点击“登录”按钮执行的方法
* @param e ActionEvent类型的事件对象
* @return void
* @author 王亚南
* @version 1.0 2007/11/21
*/
void loginButton_actionPerformed(ActionEvent e) {
//调用validatePass()方法验证输入
if (!validatePass()) {
return;
}
//这里组合框userTypeComboBox中元素的下标和数据库users表用户类型对应的整数一致,
//即0为顾客,1为业务员,2为管理员
userType = userTypeComboBox.getSelectedIndex();
String sqlStr = text.getString(
"select password from users where loginname=? and usertype=?");
}
/**
*点击“用户名”输入框按下“回车”执行的方法,
* 直接调用loginButton_actionPerformed(e)方法。
* @param e ActionEvent类型的事件对象
* @return void
* @author 王亚南
* @version 1.0 2007/11/21
*/
public void userNameField_actionPerformed(ActionEvent e) {
loginButton_actionPerformed(e);
}
/**
*点击“密码”输入框按下“回车”执行的方法,
* 直接调用loginButton_actionPerformed(e)方法。
* @param e ActionEvent类型的事件对象
* @return void
* @author 王亚南
* @version 1.0 2007/11/21
*/
public void passwordField_actionPerformed(ActionEvent e) {
loginButton_actionPerformed(e);
}
/**
*点击“注册”按钮执行的方法
* @param e ActionEvent类型的事件对象
* @return void
* @author 王亚南
* @version 1.0 2007/11/21
*/
public void registButton_actionPerformed(ActionEvent e) {
}
/**
*点击“取消”按钮执行的方法,关闭登录窗口
* @param e ActionEvent类型的事件对象
* @return void
* @author 王亚南
* @version 1.0 2007/11/21
*/
public void cancelButton_actionPerformed(ActionEvent e) {
this.dispose();
}
}
class LoginFrame_jButton2_actionAdapter
implements ActionListener {
private LoginFrame adaptee;
LoginFrame_jButton2_actionAdapter(LoginFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.cancelButton_actionPerformed(e);
}
}
class LoginFrame_registButton_actionAdapter
implements ActionListener {
private LoginFrame adaptee;
LoginFrame_registButton_actionAdapter(LoginFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.registButton_actionPerformed(e);
}
}
class LoginFrame_cancelButton_actionAdapter
implements ActionListener {
private LoginFrame adaptee;
LoginFrame_cancelButton_actionAdapter(LoginFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.passwordField_actionPerformed(e);
}
}
class LoginFrame_userNameField_actionAdapter
implements ActionListener {
private LoginFrame adaptee;
LoginFrame_userNameField_actionAdapter(LoginFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.userNameField_actionPerformed(e);
}
}
class LoginFrame_loginButton_actionAdapter
implements java.awt.event.ActionListener {
LoginFrame adaptee;
LoginFrame_loginButton_actionAdapter(LoginFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.loginButton_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -