import javax.swing.*;
import java.awt.*;
public class UI {
UIlistener uil =new UIlistener();
public void showInUI() {
JFrame jf = new JFrame();
jf.setTitle("登录界面");
jf.setSize(400, 350);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jf.setLayout(new FlowLayout());
JLabel namejla = new JLabel("账号:");
JLabel pwdjla = new JLabel("密码:");
JTextField nameIn = new JTextField(30);
JPasswordField pwdIn = new JPasswordField(30);
JButton loginBtn = new JButton("登陆");
JButton registerBtn = new JButton("注册");
jf.add(namejla);
jf.add(nameIn);
jf.add(pwdjla);
jf.add(pwdIn);
jf.add(loginBtn);
jf.add(registerBtn);
jf.setVisible(true);//创建窗口
loginBtn.addActionListener(uil);
registerBtn.addActionListener(uil);//为按钮添加监听器
uil.date.SetLoginTable(nameIn,pwdIn,this);
}
代码运行效果:可以看到已经有一个极为简单的登录界面了。
类似的,我们继续创建注册页面和个人信息展示页面。 创建监听器,让按钮被点击时可以执行代码。
此处设置了“登陆”“注册”等操作。
public class UIlistener implements ActionListener {
table date = new table();
@Override
public void actionPerformed(ActionEvent e) {
String ac=e.getActionCommand();//添加监听器
System.out.println("操作:"+ac);
if(ac.equals("登陆")){
String name = date.getIName();
String pwd = date.getINPwd();
System.out.println("用户名"+name);
if(name.isEmpty()){
JOptionPane.showMessageDialog(null,"请输入用户");}//判断用户栏是否为空
else if(pwd.isEmpty()){
JOptionPane.showMessageDialog(null,"请输入密码");}//判断密码栏是否为空
int loginCode = UserManage.userLogin(name,pwd);//对输入的格式进行判断
switch (loginCode){
case 0:
JOptionPane.showMessageDialog(null,name+"用户未注册");
break;
case 1:
JOptionPane.showMessageDialog(null,name+"密码错误");
break;
case 2:
JOptionPane.showMessageDialog(null,name+"登陆成功");
date.showUser(name);
break;
case 3:
JOptionPane.showMessageDialog(null,name+"用户已在线");
break;
}
} else if (ac.equals("注册")) {
date.showRe();
}else if(ac.equals("确定注册")){
String Name = date.getREName();
String Pwd = date.getREPwd();
String repwd = date.getRErepwd();
String phone = date.getREphone();
String email = date.getREemail();
System.out.println("名字"+Name+"密码"+Pwd+repwd+phone+email);
boolean registerCode = UserManage.userRegister(Name,Pwd,phone,email);
if (registerCode) {
JOptionPane.showMessageDialog(null,Name+"用户注册成功");}
else{
JOptionPane.showMessageDialog(null,Name+"用户已注册");
}
}else if(ac.equals("取消")){
}
}
}
创建一个表格,可以存储用户的信息,并且可以用get方法获取用户输入的内容。
此处只展示了对于登陆界面的表格设置,注册界面和个人主页界面与此类似。
public class table {
JTextField nameInT;
JPasswordField pwdInT;
UI ui;
public void SetLoginTable(JTextField nameInT, JPasswordField pwdInT, UI ui) {
this.nameInT = nameInT;
this.pwdInT = pwdInT;
this.ui = ui;//创建表格,存放输入框的信息
}
public String getIName(){
return nameInT.getText();
}//获取名字
public String getINPwd(){
return pwdInT.getText();
}//获取密码
public void showRe(){
ui.showRegisterUI();
}//点击注册,跳出注册页面的方法
定义User类,存储用户的信息。
并写了get方法,让系统获取到用户信息。
public User(String name, String pwd) {
this.name = name;
this.pwd = pwd;
}
public User(String name, String pwd, String phone, String email) {
this.name = name;
this.pwd = pwd;
this.Phone = phone;
this.Email = email;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getPhone() {
return Phone;
}
public void setPhone(String phone) {
Phone = phone;
}
public String getEmail() {
return Email;
}
public void setEmail(String email) {
Email = email;
}
public boolean isIslogin() {
return islogin;
}
public void setIslogin(boolean islogin) {
this.islogin = islogin;
}
public int login(String pwdIn) {
if(pwdIn.equals(pwd)){
if(islogin){
System.out.println("已在线");
return 3;
}
islogin=true;
System.out.println("登陆成功");
return 2;
}
return 1;
}//此处为判断用户在线状态的方法,与监听器代码的SWICH相关联
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", pwd='" + pwd + '\'' +
", Phone='" + Phone + '\'' +
", Email='" + Email + '\'' +
", islogin=" + islogin +
'}';
}
}
创建用户管理类,对用户的信息进行管理储存。
此处为登陆界面对用户信息的管理,注册界面与此类似。
public class UserManage {
static User[] userList = new User[20];
static int userSize;
public static int userLogin(String name,String pwd){
if(isequal(name)){
System.out.println("用户未注册");
}else {
for (int i = 0; i <userSize; i++) {
User user =userList[i];
if(user.getName().equals(name)){
int loginCode = user.login(pwd);
return loginCode;
}
}
}//对用户的登录状态进行判断,返回用户的登陆状态
if(name.isEmpty()){
return 7;//随便返回一个值,当用户栏为空时跳出“用户栏为空”的信息,而不是用户未注册
}else if(pwd.isEmpty()){
return 7;//随便返回一个值,当密码栏为空时跳出“密码栏为空”的信息,而不是用户未注册
}else{
return 0;
}
}
public static boolean isequal(String name) {
for (int i = 0; i < userSize; i++) {
User user = userList[i];
if (user.getName().equals(name)) {
return false;
}
}
return true;
}//对用户是否在数组中进行判断,即是否已经注册,此处对此方法进行了封装
最终成果展示:
优化目标:
接下来可以对注册用户名,密码,手机号,邮箱进行判断,让其符合标准。
在个人主页可以对个人信息进行修改。