JFrame jf = new JFrame("Login"); jf.setSize(600, 900); jf.setResizable (false); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); FlowLayout fl = new FlowLayout();
JButton btn_sign_in = new JButton("Sign in"); JButton btn_sign_up = new JButton("Sign up"); JTextField namein = new JTextField(); JPasswordField pwdin = new JPasswordField(); JLabel nameJla = new JLabel("Account num:"); JLabel pwdJla = new JLabel ("password:"); Dimension dim = new Dimension(550, 50); namein.setPreferredSize(dim); pwdin.setPreferredSize(dim); jf.add(nameJla); jf.add(namein); jf.add(pwdJla); jf.add(pwdin); jf.add(checkBox); jf.add(btn_sign_in); jf.add(btn_sign_up); jf.setVisible(true);
public class 类名 implements ActionListener { public void actionPerformed(ActionEvent e) { } }
配置完成按键响应后需要在往按键对象里添加监听器,用本案例的一个代码举例,往登录按钮添加登录监听器:
SigninListener SigninListener = new SigninListener(); btn_sign_in.addActionListener(SigninListener);
JTextField namein = new JTextField(); JPasswordField pwdin = new JPasswordField(); Dimension dim = new Dimension(550, 50); namein.setPreferredSize(dim); pwdin.setPreferredSize(dim);
public class Users { String[] username = new String[10]; String[] userpwd = new String[10]; int[] online = new int[10]; static int users_num = 1; private Users(String username, String userpwd, int online){ this.username[0] = username; this.userpwd[0] = userpwd; this.online[0] = online; } private static final Users admin = new Users("admin", "123", 0); public static Users getUser() { return admin; } public static int getUsers_num() { return users_num; } public static void setUsers_num(int users_num) { Users.users_num = users_num + 1; } }
界面初始化LoginUI
package login; import java.awt.*; import javax.swing.*; public class LoginUI { public void initUI(){ JFrame jf = new JFrame("Login"); jf.setSize(600, 900); jf.setResizable (false); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); FlowLayout fl = new FlowLayout(); jf.setLayout(fl); JButton btn_sign_in = new JButton("Sign in"); JButton btn_sign_up = new JButton("Sign up"); JTextField namein = new JTextField(); JPasswordField pwdin = new JPasswordField(); JLabel nameJla = new JLabel("Account num:"); JLabel pwdJla = new JLabel ("password:"); JCheckBox checkBox = new JCheckBox("remember password"); Dimension dim = new Dimension(550, 50); namein.setPreferredSize(dim); pwdin.setPreferredSize(dim); jf.add(nameJla); jf.add(namein); jf.add(pwdJla); jf.add(pwdin); jf.add(checkBox); jf.add(btn_sign_in); jf.add(btn_sign_up); jf.setVisible(true); SigninListener SigninListener = new SigninListener(); SignupListener SignupListener = new SignupListener(); btn_sign_in.addActionListener(SigninListener); btn_sign_up.addActionListener(SignupListener); SigninListener.setNamein_pwdin(namein, pwdin); } public static void main(String[] args) { new LoginUI().initUI(); } }
登录监听
package login; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Arrays; public class SigninListener implements ActionListener { private JTextField namein; private JPasswordField pwdin; public void setNamein_pwdin(JTextField namein, JPasswordField pwdin){ this.namein = namein; this.pwdin = pwdin; } @Override public void actionPerformed(ActionEvent e) { //String btnstr = e.getActionCommand (); //System.out.println(btnstr+"按钮click"); String nameinText = namein.getText(); String pwdinText = new String(pwdin.getPassword()); //System.out.println("Acount:"+ nameinText); //System.out.println("Password:"+ pwdinText); Users user = Users.getUser(); int login = 0; for (int i = 0; i < Users.getUsers_num(); i++){ if (nameinText.equals(user.username[i])){ System.out.println ("账号正确!"); if (pwdinText.equals(user.userpwd[i])){ System.out.println ("登录成功!"); login = 1; break; } } } if (login == 1){ UIshow(); } else{ System.err.println ("账号或密码错误!"); } } private void UIshow(){ JFrame jf = new JFrame("主页"); jf.setSize(600, 600); jf.setResizable (false); jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); jf.setVisible(true); } }
注册监听
package login; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class SignupListener implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { //String btnstr = e.getActionCommand (); //System.out.println(btnstr+"按钮click"); JFrame jf = new JFrame("Sign up"); jf.setSize(600, 900); jf.setResizable (false); jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); FlowLayout fl = new FlowLayout(); jf.setLayout(fl); JButton btn_determine = new JButton("determine"); JButton btn_cancle = new JButton("cancle"); JTextField namein = new JTextField(); JPasswordField pwdin = new JPasswordField(); JPasswordField pwdin2 = new JPasswordField(); JLabel nameJla = new JLabel("Account num:"); JLabel pwdJla = new JLabel ("password:"); JLabel pwdJla2 = new JLabel ("password again:"); Dimension dim = new Dimension(550, 50); namein.setPreferredSize(dim); pwdin.setPreferredSize(dim); pwdin2.setPreferredSize(dim); jf.add(nameJla); jf.add(namein); jf.add(pwdJla); jf.add(pwdin); jf.add(pwdJla2); jf.add(pwdin2); jf.add(btn_determine); jf.add(btn_cancle); jf.setVisible(true); SignupdetListener SignupdetListener = new SignupdetListener(); SignupcancelListener SignupcancelListener = new SignupcancelListener(); btn_determine.addActionListener(SignupdetListener); btn_cancle.addActionListener(SignupcancelListener); SignupdetListener.setNamein_pwdin(namein, pwdin, pwdin2); } }
注册确认
package login; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class SignupdetListener implements ActionListener{ private JTextField namein; private JPasswordField pwdin; private JPasswordField pwdin2; public void setNamein_pwdin(JTextField namein, JPasswordField pwdin, JPasswordField pwdin2){ this.namein = namein; this.pwdin = pwdin; this.pwdin2 = pwdin2; } @Override public void actionPerformed(ActionEvent e) { String nameinText = namein.getText (); String pwdinText = new String(pwdin.getPassword()); String pwdinText2 = new String(pwdin2.getPassword()); Users user = Users.getUser(); if (pwdinText.equals(pwdinText2)){ //System.out.println("用户人数:"+ Users.getUsers_num()); user.username[Users.getUsers_num()] = nameinText; user.userpwd[Users.getUsers_num()] = pwdinText; //System.out.println("Acount:"+ user.username[Users.getUsers_num()]); //System.out.println("Password:"+ user.userpwd[Users.getUsers_num()]); Users.setUsers_num(Users.getUsers_num()); System.out.println ("注册成功!"); //System.out.println("用户人数:"+ Users.getUsers_num()); } else{ System.out.println ("两次密码不一致!"); } } }
注册取消(无功能)
package login; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class SignupcancelListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { } }