⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loginframe.java

📁 简单的学习;如何使用JAVA应用国际化的实例.望指教
💻 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 + -