------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
最终版本:应用到了面向对象(继承、接口、抽象类)、集合、数组、IO流、线程与GUI等重要知识点。可以很好地让我们把基础的知识从头到尾的梳理一遍,有助于我们对基础基础的知识做一个比较全面的复习与总结。
启动程序的类: MainApp.java
用户信息类: User.java
用户操作类: UserOperator.java
-------------------
cn.itcast.ui
启动程序的类: MainApp.java
cn.itcast.pojo
用户信息类: User.java
cn.itcast.dao
用户操作接口: UserOperator.java
cn.itcast.dao.impl
用户操作实现类: UserOperatorImpl.java
------------------------
-------------------
cn.itcast.ui
启动程序的类: MainApp.java
IndexFrame.java 主页面
LoginRegisterFrame.java 登录注册页面
|- LoginRegisterFrame_Login.java 登录页面 功能实现
|- LoginRegisterFrame_Register.java 注册页面功能实现
cn.itcast.pojo
用户信息类: User.java
cn.itcast.dao
用户操作接口: UserOperator.java
cn.itcast.dao.impl
用户操作实现类: UserOperatorImpl.java
------------------------------------------------
最后版本程序的结构
--------------------------------------
客户端
cn.itcast.ui 界面
(主界面)IndexFrame.java
(登录注册页面_登录)LoginRegisterFrame_Login.java
(登录注册页面_注册)LoginRegisterFrame_Register.java
(登录注册页面_基本类)LoginRegisterFrame.java
(启动器)MainApp.java
cn.itcast.dao 接口
(用户操作接口)UserOperator.java
cn.itcast.dao.impl 接口实现类
(用户操作接口实现类)UserOperatorImpl.java
cn.itcast.bean 实体
(用户信息类)User.java
---------------------------------
服务器端
cn.itcast.server 服务器端
(服务器端注册处理类)RegisterServer.java
(服务器端登录处理类)LoginServer.java
(服务器端启动器)ServerMainApp.java
存储已存在的用户信息
UserInfo.txt (该文件存在服务器端)
案例:最终版模拟注册登录系统
* 用户信息类: User.java 用户名 密码
*/
public class User implements Serializable {
private String username;
private String password;
public User() {
super();
}
public User(String username, String password) {
super();
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
*/
public class User implements Serializable {
private String username;
private String password;
public User() {
super();
}
public User(String username, String password) {
super();
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
* 用户操作实现类: UserOperatorImpl.java
*
*/
public class UserOperatorImpl implements UserOperator {
/**
* 登录功能
* @param username 用户名
* @param password 密码
* @return 登录是否成功
*/
@Override
public boolean isLogin(String username, String password) {
boolean flag = false;
try {
//连接服务器,发送数据给服务器端
Socket s = new Socket("192.168.35.165", 10086);
User user = new User(username, password);
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
oos.writeObject(user);
//告知服务器端,客户端写入数据完毕
s.shutdownOutput();
//获取服务器反馈信息
DataInputStream dis = new DataInputStream(s.getInputStream());
flag = dis.readBoolean();
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 注册功能
* @param user 要注册的用户
* @return 注册是否成功
*/
@Override
public boolean isRegister(User user) {
boolean flag = false;
try {
//连接服务器
Socket s = new Socket("192.168.35.165", 10000);
//把User用户信息 发送给服务器端
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
oos.writeObject(user);
//告知服务器端,输出流数据写入完毕
s.shutdownOutput();
//-----------------------
//获取服务器的反馈信息
DataInputStream dis = new DataInputStream(s.getInputStream());
flag = dis.readBoolean();
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
}
*
*/
public class UserOperatorImpl implements UserOperator {
/**
* 登录功能
* @param username 用户名
* @param password 密码
* @return 登录是否成功
*/
@Override
public boolean isLogin(String username, String password) {
boolean flag = false;
try {
//连接服务器,发送数据给服务器端
Socket s = new Socket("192.168.35.165", 10086);
User user = new User(username, password);
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
oos.writeObject(user);
//告知服务器端,客户端写入数据完毕
s.shutdownOutput();
//获取服务器反馈信息
DataInputStream dis = new DataInputStream(s.getInputStream());
flag = dis.readBoolean();
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 注册功能
* @param user 要注册的用户
* @return 注册是否成功
*/
@Override
public boolean isRegister(User user) {
boolean flag = false;
try {
//连接服务器
Socket s = new Socket("192.168.35.165", 10000);
//把User用户信息 发送给服务器端
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
oos.writeObject(user);
//告知服务器端,输出流数据写入完毕
s.shutdownOutput();
//-----------------------
//获取服务器的反馈信息
DataInputStream dis = new DataInputStream(s.getInputStream());
flag = dis.readBoolean();
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
}
用户操作接口: UserOperator.java
* 登录
* 注册
*/
public interface UserOperator {
/**
* 登录功能
* @param username 用户名
* @param password 密码
* @return 登录是否成功
*/
public abstract boolean isLogin(String username, String password);
/**
* 注册功能
* @param user 要注册的用户
* @return 注册是否成功
*/
public abstract boolean isRegister(User user);
}
* 登录
* 注册
*/
public interface UserOperator {
/**
* 登录功能
* @param username 用户名
* @param password 密码
* @return 登录是否成功
*/
public abstract boolean isLogin(String username, String password);
/**
* 注册功能
* @param user 要注册的用户
* @return 注册是否成功
*/
public abstract boolean isRegister(User user);
}
* (服务器端登录处理类)LoginServer.java
*/
public class LoginServer {
//构造方法
public LoginServer() throws IOException{
//创建服务器端登录 ServerSocket
ServerSocket ss = new ServerSocket(10086);
while (true) {
//等待客户端Socket对象连接
final Socket s = ss.accept();
//创建线程对象, 为了与客户端Socket数据交互
new Thread(){
public void run() {
try {
//获取客户端Socket的用户登录信息
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
User user = (User) ois.readObject();
//读取UserInfo.txt文件中的用户信息
BufferedReader brFile = new BufferedReader(new FileReader("UserInfo.txt"));
String line = null;
boolean flag = false;
while ((line = brFile.readLine()) != null) {
//获取每一个用户的账号与密码
String[] userArray = line.split("=");//0,代表账号,1,代表密码
if (user.getUsername().equals(userArray[0]) && user.getPassword().equals(userArray[1]) ) {
//说明 要登录的用户信息(账号密码) 与 文件中已存在的用户信息(账号密码) 相同, 给客户端返回 登录成功
flag = true;
break;
}
}
//根据flag值,给客户端编写反馈信息
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
if (flag) {
//说明 要登录的用户信息(账号密码) 与 文件中已存在的用户信息(账号密码) 相同, 给客户端返回 登录成功
dos.writeBoolean(true);
} else {
//说明 要登录的用户信息(账号密码) 与 文件中已存在的用户信息(账号密码) 不相同, 给客户端返回 登录失败
dos.writeBoolean(false);
}
//关闭Socket流
s.close();
} catch (Exception e) {
e.printStackTrace();
}
};
}.start();
}
}
}
*/
public class LoginServer {
//构造方法
public LoginServer() throws IOException{
//创建服务器端登录 ServerSocket
ServerSocket ss = new ServerSocket(10086);
while (true) {
//等待客户端Socket对象连接
final Socket s = ss.accept();
//创建线程对象, 为了与客户端Socket数据交互
new Thread(){
public void run() {
try {
//获取客户端Socket的用户登录信息
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
User user = (User) ois.readObject();
//读取UserInfo.txt文件中的用户信息
BufferedReader brFile = new BufferedReader(new FileReader("UserInfo.txt"));
String line = null;
boolean flag = false;
while ((line = brFile.readLine()) != null) {
//获取每一个用户的账号与密码
String[] userArray = line.split("=");//0,代表账号,1,代表密码
if (user.getUsername().equals(userArray[0]) && user.getPassword().equals(userArray[1]) ) {
//说明 要登录的用户信息(账号密码) 与 文件中已存在的用户信息(账号密码) 相同, 给客户端返回 登录成功
flag = true;
break;
}
}
//根据flag值,给客户端编写反馈信息
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
if (flag) {
//说明 要登录的用户信息(账号密码) 与 文件中已存在的用户信息(账号密码) 相同, 给客户端返回 登录成功
dos.writeBoolean(true);
} else {
//说明 要登录的用户信息(账号密码) 与 文件中已存在的用户信息(账号密码) 不相同, 给客户端返回 登录失败
dos.writeBoolean(false);
}
//关闭Socket流
s.close();
} catch (Exception e) {
e.printStackTrace();
}
};
}.start();
}
}
}
/*
* (服务器端注册处理类)RegisterServer.java
*/
public class RegisterServer {
//构造方法
public RegisterServer() throws IOException{
//创建服务器端注册ServerSocket 10000
ServerSocket ss = new ServerSocket(10000);
while (true) {
//等待客户端Socket对象的连接
final Socket s = ss.accept();
//创建线程对象,完成与客户端数据通信
new Thread(){
public void run() {
try {
//获取客户端SOcket发来的User信息
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
User user = (User) ois.readObject();
//读取UserInfo.txt文件中的用户信息
BufferedReader brFile = new BufferedReader(new FileReader("UserInfo.txt"));
String line = null;
boolean flag = false; //记录要注册的用户名是否存在
while ((line = brFile.readLine()) != null) {
//获取文件中每个用户的用户名
String[] userArray = line.split("=");
//0角标 代表 用户名, 1角标代表 密码
//判断要注册的用户名 与 已存在的用户是否相同
if (user.getUsername().equals(userArray[0])) {
//如果用户名同名,说明要注册的用户名称已存在
flag = true;
break;
}
}
//根据 要注册的用户名是否存在, 来确定是否向文件中 添加用户信息
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
if (flag) {
//说明,要注册的用户名在文件中 已经存在,不注册了,给客户端返回注册失败
dos.writeBoolean(false);
} else {
//说明,这是一个新用户名, 注册用户信息写入到文件中, 给客户端返回注册成功
PrintWriter pwFile = new PrintWriter(new FileWriter("UserInfo.txt", true), true);//开启自动刷新,自动追加
pwFile.println(user.getUsername()+"="+user.getPassword());
pwFile.close();
// 给客户端返回注册成功
dos.writeBoolean(true);
}
//关闭Socket流
s.close();
} catch (Exception e) {
e.printStackTrace();
}
};
}.start();
}
}
}
* (服务器端注册处理类)RegisterServer.java
*/
public class RegisterServer {
//构造方法
public RegisterServer() throws IOException{
//创建服务器端注册ServerSocket 10000
ServerSocket ss = new ServerSocket(10000);
while (true) {
//等待客户端Socket对象的连接
final Socket s = ss.accept();
//创建线程对象,完成与客户端数据通信
new Thread(){
public void run() {
try {
//获取客户端SOcket发来的User信息
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
User user = (User) ois.readObject();
//读取UserInfo.txt文件中的用户信息
BufferedReader brFile = new BufferedReader(new FileReader("UserInfo.txt"));
String line = null;
boolean flag = false; //记录要注册的用户名是否存在
while ((line = brFile.readLine()) != null) {
//获取文件中每个用户的用户名
String[] userArray = line.split("=");
//0角标 代表 用户名, 1角标代表 密码
//判断要注册的用户名 与 已存在的用户是否相同
if (user.getUsername().equals(userArray[0])) {
//如果用户名同名,说明要注册的用户名称已存在
flag = true;
break;
}
}
//根据 要注册的用户名是否存在, 来确定是否向文件中 添加用户信息
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
if (flag) {
//说明,要注册的用户名在文件中 已经存在,不注册了,给客户端返回注册失败
dos.writeBoolean(false);
} else {
//说明,这是一个新用户名, 注册用户信息写入到文件中, 给客户端返回注册成功
PrintWriter pwFile = new PrintWriter(new FileWriter("UserInfo.txt", true), true);//开启自动刷新,自动追加
pwFile.println(user.getUsername()+"="+user.getPassword());
pwFile.close();
// 给客户端返回注册成功
dos.writeBoolean(true);
}
//关闭Socket流
s.close();
} catch (Exception e) {
e.printStackTrace();
}
};
}.start();
}
}
}
* (服务器端启动器)ServerMainApp.java
*/
public class ServerMainApp {
public static void main(String[] args) {
new Thread(){
public void run() {
try {
LoginServer login = new LoginServer();
} catch (IOException e) {
e.printStackTrace();
}
};
}.start();
new Thread(){
public void run() {
try {
RegisterServer register = new RegisterServer();
} catch (IOException e) {
e.printStackTrace();
}
};
}.start();
}
}
*/
public class ServerMainApp {
public static void main(String[] args) {
new Thread(){
public void run() {
try {
LoginServer login = new LoginServer();
} catch (IOException e) {
e.printStackTrace();
}
};
}.start();
new Thread(){
public void run() {
try {
RegisterServer register = new RegisterServer();
} catch (IOException e) {
e.printStackTrace();
}
};
}.start();
}
}
* IndexFrame.java 主页面
*/
public class IndexFrame extends JFrame {
private MenuItem exitMI = new MenuItem("Exit"); //菜单项
//空参数构造方法
public IndexFrame () {
//窗体初始化方法
init();
//菜单的制作
addMenu();
//菜单项 点击事件处理
addMenuItemListener();
}
//菜单项 点击事件处理
private void addMenuItemListener() {
exitMI.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
}
///菜单的制作
private void addMenu() {
MenuBar menuBar = new MenuBar();//菜单栏
Menu fileMenu = new Menu("File");//菜单
//组装菜单
fileMenu.add(exitMI);
menuBar.add(fileMenu);
this.setMenuBar(menuBar);
}
//窗体初始化方法
private void init() {
//标题
this.setTitle("XXX 网站主页面");
//窗体大小与位置
this.setBounds(350, 150, 600, 400);
//窗体大小固定
this.setResizable(false);
//关闭窗口默认操作
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
*/
public class IndexFrame extends JFrame {
private MenuItem exitMI = new MenuItem("Exit"); //菜单项
//空参数构造方法
public IndexFrame () {
//窗体初始化方法
init();
//菜单的制作
addMenu();
//菜单项 点击事件处理
addMenuItemListener();
}
//菜单项 点击事件处理
private void addMenuItemListener() {
exitMI.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
}
///菜单的制作
private void addMenu() {
MenuBar menuBar = new MenuBar();//菜单栏
Menu fileMenu = new Menu("File");//菜单
//组装菜单
fileMenu.add(exitMI);
menuBar.add(fileMenu);
this.setMenuBar(menuBar);
}
//窗体初始化方法
private void init() {
//标题
this.setTitle("XXX 网站主页面");
//窗体大小与位置
this.setBounds(350, 150, 600, 400);
//窗体大小固定
this.setResizable(false);
//关闭窗口默认操作
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
LoginRegisterFrame.java 登录注册页面
*
* 登录注册页面的基本页面, 该页面中没有功能的实现,只有页面的布局显示
* 具体的功能由子类完成
*/
public abstract class LoginRegisterFrame extends JFrame {
protected JTextField usernameTF = null;//用户名文本框
protected JTextField passwordTF = null;//密码文本框
protected JButton leftBtn = null;//左边按钮
protected JButton rightBtn = null;//右边按钮
//构造方法
public LoginRegisterFrame(){
//窗体的初始化操作
init();
//添加组件到窗口
addComponent();
//为组件添加事件监听
addListener();
}
private void addListener() {
//左边按钮
leftBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("左边按钮被点击");
leftBtnMethod();
}
});
//右边按钮
rightBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("---右边按钮被点击");
rightBtnMethod();
}
});
}
public abstract void leftBtnMethod(); //由子类编写
public abstract void rightBtnMethod();//由子类编写
private void addComponent() {
//创建组件
JLabel usernameLabel = new JLabel("用户名:");
JLabel passwordLabel =new JLabel("密 码:");
usernameTF = new JTextField(10);
passwordTF = new JTextField(10);
leftBtn = new JButton("左边");
rightBtn = new JButton("右边");
//设置组件的大小与位置
usernameLabel.setBounds(30, 50, 60, 20);
passwordLabel.setBounds(30, 120, 60, 20);
usernameTF.setBounds(100, 50, 150, 30);
passwordTF.setBounds(100, 120, 150, 30);
leftBtn.setBounds(30, 200, 100, 30);
rightBtn.setBounds(150, 200, 100, 30);
//把组件添加到窗体中
this.add(usernameLabel);
this.add(passwordLabel);
this.add(usernameTF);
this.add(passwordTF);
this.add(leftBtn);
this.add(rightBtn);
}
//窗体的初始化操作
private void init() {
//设置标题
this.setTitle("登录注册基本页面");
//设置窗体的大小与位置
this.setBounds(500, 200, 300, 300);
//设置窗体大小固定
this.setResizable(false);
//窗口默认关闭操作
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置窗体的布局为 帧式布局
this.setLayout(null);
}
}
*
* 登录注册页面的基本页面, 该页面中没有功能的实现,只有页面的布局显示
* 具体的功能由子类完成
*/
public abstract class LoginRegisterFrame extends JFrame {
protected JTextField usernameTF = null;//用户名文本框
protected JTextField passwordTF = null;//密码文本框
protected JButton leftBtn = null;//左边按钮
protected JButton rightBtn = null;//右边按钮
//构造方法
public LoginRegisterFrame(){
//窗体的初始化操作
init();
//添加组件到窗口
addComponent();
//为组件添加事件监听
addListener();
}
private void addListener() {
//左边按钮
leftBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("左边按钮被点击");
leftBtnMethod();
}
});
//右边按钮
rightBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("---右边按钮被点击");
rightBtnMethod();
}
});
}
public abstract void leftBtnMethod(); //由子类编写
public abstract void rightBtnMethod();//由子类编写
private void addComponent() {
//创建组件
JLabel usernameLabel = new JLabel("用户名:");
JLabel passwordLabel =new JLabel("密 码:");
usernameTF = new JTextField(10);
passwordTF = new JTextField(10);
leftBtn = new JButton("左边");
rightBtn = new JButton("右边");
//设置组件的大小与位置
usernameLabel.setBounds(30, 50, 60, 20);
passwordLabel.setBounds(30, 120, 60, 20);
usernameTF.setBounds(100, 50, 150, 30);
passwordTF.setBounds(100, 120, 150, 30);
leftBtn.setBounds(30, 200, 100, 30);
rightBtn.setBounds(150, 200, 100, 30);
//把组件添加到窗体中
this.add(usernameLabel);
this.add(passwordLabel);
this.add(usernameTF);
this.add(passwordTF);
this.add(leftBtn);
this.add(rightBtn);
}
//窗体的初始化操作
private void init() {
//设置标题
this.setTitle("登录注册基本页面");
//设置窗体的大小与位置
this.setBounds(500, 200, 300, 300);
//设置窗体大小固定
this.setResizable(false);
//窗口默认关闭操作
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置窗体的布局为 帧式布局
this.setLayout(null);
}
}
LoginRegisterFrame_Login.java 登录页面 功能实现
*/
public class LoginRegisterFrame_Login extends LoginRegisterFrame{
//构造方法
public LoginRegisterFrame_Login(){
super();
this.setTitle("登录界面");//设置标题
leftBtn.setText("登录");//设置左边按钮名称
rightBtn.setText("注册");//设置右边按钮名称
}
//登录方法
@Override
public void leftBtnMethod() {
//获取用户名与密码
String username = usernameTF.getText();
String password = passwordTF.getText();
//调用接口中的登录功能
UserOperator uo = new UserOperatorImpl();
boolean isLogin = uo.isLogin(username, password);
System.out.println("isLogin = " + isLogin);
//显示登录提示的方法
showDialog(isLogin);
}
//显示登录提示的方法
private void showDialog(boolean isLogin) {
if (isLogin) {
//登录成功,转到 主页面
JOptionPane.showMessageDialog(this, "登录成功,跳转到主页面");
//隐藏登录页面
this.setVisible(false);
//显示主页面
IndexFrame index = new IndexFrame();
index.setVisible(true);
} else {
//登录失败,重新登录
JOptionPane.showMessageDialog(this, "登录失败,请重新登录");
}
}
//注册方法
@Override
public void rightBtnMethod() {
//打开注册页面
LoginRegisterFrame_Register register = new LoginRegisterFrame_Register();
//隐藏登录页面
this.setVisible(false);
//显示注册页面
register.setVisible(true);
}
}
*/
public class LoginRegisterFrame_Login extends LoginRegisterFrame{
//构造方法
public LoginRegisterFrame_Login(){
super();
this.setTitle("登录界面");//设置标题
leftBtn.setText("登录");//设置左边按钮名称
rightBtn.setText("注册");//设置右边按钮名称
}
//登录方法
@Override
public void leftBtnMethod() {
//获取用户名与密码
String username = usernameTF.getText();
String password = passwordTF.getText();
//调用接口中的登录功能
UserOperator uo = new UserOperatorImpl();
boolean isLogin = uo.isLogin(username, password);
System.out.println("isLogin = " + isLogin);
//显示登录提示的方法
showDialog(isLogin);
}
//显示登录提示的方法
private void showDialog(boolean isLogin) {
if (isLogin) {
//登录成功,转到 主页面
JOptionPane.showMessageDialog(this, "登录成功,跳转到主页面");
//隐藏登录页面
this.setVisible(false);
//显示主页面
IndexFrame index = new IndexFrame();
index.setVisible(true);
} else {
//登录失败,重新登录
JOptionPane.showMessageDialog(this, "登录失败,请重新登录");
}
}
//注册方法
@Override
public void rightBtnMethod() {
//打开注册页面
LoginRegisterFrame_Register register = new LoginRegisterFrame_Register();
//隐藏登录页面
this.setVisible(false);
//显示注册页面
register.setVisible(true);
}
}
* LoginRegisterFrame_Register.java 注册页面功能实现
*/
public class LoginRegisterFrame_Register extends LoginRegisterFrame {
//构造方法
public LoginRegisterFrame_Register(){
super();
this.setTitle("注册页面");
leftBtn.setText("注册");
rightBtn.setText("重置");
}
//注册功能
@Override
public void leftBtnMethod() {
//获取输入的用户名与密码
String username = usernameTF.getText();
String password = passwordTF.getText();
//提供要注册的用户 User
User user = new User(username, password);
//通过UserOperator接口,完成注册功能
UserOperator uo = new UserOperatorImpl();
boolean isRegister = uo.isRegister(user);
System.out.println("isRegister = " + isRegister);
//注册功能的消息提示功能
showDialog(isRegister);
}
//注册功能的消息提示功能
private void showDialog(boolean isRegister) {
if (isRegister) {
//注册成功, 返回到登录页面
JOptionPane.showMessageDialog(this, "恭喜你,注册成功,请登录");
//隐藏注册页面
this.setVisible(false);
//显示登录页面
LoginRegisterFrame_Login login = new LoginRegisterFrame_Login();
login.setVisible(true);
} else {
//注册失败, 重新注册
JOptionPane.showMessageDialog(this, "对不起,注册失败,请重新注册");
}
}
//重置按钮
@Override
public void rightBtnMethod() {
//用户名文本框内容清空
usernameTF.setText(null);
//密码文本框内容清空
passwordTF.setText(null);
}
}
*/
public class LoginRegisterFrame_Register extends LoginRegisterFrame {
//构造方法
public LoginRegisterFrame_Register(){
super();
this.setTitle("注册页面");
leftBtn.setText("注册");
rightBtn.setText("重置");
}
//注册功能
@Override
public void leftBtnMethod() {
//获取输入的用户名与密码
String username = usernameTF.getText();
String password = passwordTF.getText();
//提供要注册的用户 User
User user = new User(username, password);
//通过UserOperator接口,完成注册功能
UserOperator uo = new UserOperatorImpl();
boolean isRegister = uo.isRegister(user);
System.out.println("isRegister = " + isRegister);
//注册功能的消息提示功能
showDialog(isRegister);
}
//注册功能的消息提示功能
private void showDialog(boolean isRegister) {
if (isRegister) {
//注册成功, 返回到登录页面
JOptionPane.showMessageDialog(this, "恭喜你,注册成功,请登录");
//隐藏注册页面
this.setVisible(false);
//显示登录页面
LoginRegisterFrame_Login login = new LoginRegisterFrame_Login();
login.setVisible(true);
} else {
//注册失败, 重新注册
JOptionPane.showMessageDialog(this, "对不起,注册失败,请重新注册");
}
}
//重置按钮
@Override
public void rightBtnMethod() {
//用户名文本框内容清空
usernameTF.setText(null);
//密码文本框内容清空
passwordTF.setText(null);
}
}
启动程序的类: MainApp.java
*/
public class MainApp {
public static void main(String[] args) {
LoginRegisterFrame_Login frame = new LoginRegisterFrame_Login();
frame.setVisible(true);
}
}
*/
public class MainApp {
public static void main(String[] args) {
LoginRegisterFrame_Login frame = new LoginRegisterFrame_Login();
frame.setVisible(true);
}
}