java-learn(8):拼图小游戏
·
声明:这个小项目是跟着黑马的视频做的
App
package demo;
public class App {
public static void main(String[] args) {
// 获取菜单页面
LoginJFrame loginFrame = new LoginJFrame();
}
}
GameJFrame
package demo;
import javax.swing.*;
import javax.swing.border.BevelBorder;
import java.util.Random;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyListener;
import java.awt.event.MouseListener;
public class GameJFrame extends JFrame implements KeyListener{
//随机生成用于打乱图片的数据
int[][] data = new int[4][4];
int[][] win = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,0}};
int step = 0;
int x = 3;
int y = 3;
String start = "D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\animal\\animal3\\";
public GameJFrame() {
//初始化界面
init();
// 初始化打乱图片的数据
initData();
// 初始化菜单
initJMenuBar();
//初始化图片
initImage();
//显示界面
this.setVisible(true);
}
private void init() {
//设置界面的宽高
this.setSize(603,680);
//设置标题
this.setTitle("拼图单机版 v1.0");
// 设置界面置顶
this.setAlwaysOnTop(true); // 这个就代表如果有多个界面 就按先后顺序来显示界面
//设置界面居中 显示界面时 是位于界面中间的
this.setLocationRelativeTo(null);
//设置页面关闭模式
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);// 参数是一个接口中的一个常量 这个是3 代表的是如果有多个窗口 只要关闭一个 程序就终止
//如果不写setLayout 系统会默认调用BoardLayout 这样会忽略setBounds :布局管理器会覆盖手动设置的位置和大小 所以JLable会堆积在中央区域
this.setLayout(null);
//添加鼠标监听器事件
this.addKeyListener(this);
}
private void initJMenuBar(){
/*
* 初始化一个菜单栏目就要创建一个JMenuBar对象
* 栏目中有很多选项 一个选项要创建一个JMenu对象
* 选项中有很多条目,一个条目需要创建一个JMenuItem对象
*
*
* */
//创建菜单对象
JMenuBar jMenuBar = new JMenuBar();
//创建菜单上两个选项
//创建更换图片菜单项目
JMenu changepictureJMeun = new JMenu("更换图片");
JMenu functionJMenu = new JMenu("功能");
JMenu aboubtJMenu = new JMenu("关于我们");
//创建选项下的条目对象
JMenuItem replayItem = new JMenuItem("重新开始");
JMenuItem SportItem = new JMenuItem("运动");
//给运动条目添加行为监听器事件
SportItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//在八张动物图片中随机挑选一张
Random r = new Random();
int temp = r.nextInt(10)+1;
start = "D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\sport\\sport"+temp+"\\";
step = 0;
initData();
initImage();
}
});
JMenuItem AnimalItem = new JMenuItem("动物");
//给动物条目添加行为监听器
AnimalItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//在八张动物图片中随机挑选一张
Random r = new Random();
int temp = r.nextInt(8)+1;
start = "D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\animal\\animal"+temp+"\\";
step = 0;
initData();
initImage();
}
});
// 给重新开始绑定一个行为监听器
replayItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
initData();
step = 0;
initImage();
}
});
JMenuItem reLoginjMenuItem = new JMenuItem("重新登录");
//给重新登录绑定行为事件
reLoginjMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
GameJFrame.this.setVisible(false);
LoginJFrame loginFrame = new LoginJFrame();
}
});
JMenuItem closeItem = new JMenuItem("关闭游戏");
// 给关闭游戏绑定行为监听器
closeItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
JMenuItem accountItem = new JMenuItem("公众号");
//给公众号绑定行为事件
accountItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//添加一个弹框对象
JDialog jDialog = new JDialog();
//创建一个管理图片的容器对象
JLabel jLabel = new JLabel(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\about.png"));
//设置图片管理容器的大小
jLabel.setBounds(0,0,258,258);
//把容器添加到弹框中
jDialog.add(jLabel);
//设置弹框大小
jDialog.setSize(344,344);
//让弹框总是置顶 就是显示在最上层
jDialog.setAlwaysOnTop(true);
//让弹框居中
jDialog.setLocationRelativeTo(null);
//弹框不关闭 无法操作小面的界面
jDialog.setModal(true);
// 让弹框显示
jDialog.setVisible(true);
}
});
//将条目添加到项目中
changepictureJMeun.add(SportItem);
changepictureJMeun.add(AnimalItem);
functionJMenu.add(changepictureJMeun);
functionJMenu.add(reLoginjMenuItem);
functionJMenu.add(replayItem);
functionJMenu.add(closeItem);
aboubtJMenu.add(accountItem);
//将项目添加到菜单中
jMenuBar.add(functionJMenu);
jMenuBar.add(aboubtJMenu);
// 设置整个菜单界面
this.setJMenuBar(jMenuBar);
}
// private void initData(){
// int[] arr = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
//
// Random r = new Random();
// for (int i = 0; i < arr.length; i++) {
// int index = r.nextInt(arr.length);
// int temp = arr[i];
// arr[i] = arr[index];
// arr[index] = temp;
// }
//
// int cnt = 0;
// for(int i = 0;i < 4;i++){
// for(int j = 0;j < 4;j++){
// if(arr[cnt] == 0){
// x = cnt % 4;
// y = cnt / 4;
// }
// data[i][j] = arr[cnt++];
// }
// }
//
// }
private void initData(){
int[][] arr = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,0}};
x = 3;
y = 3;
Random r = new Random();
for(int i = 0;i < 1000;i++){
int num = r.nextInt(4);
if(num == 0 && check(x-1,y)){
//向左
int temp = arr[x][y];
arr[x][y] = arr[x-1][y];
arr[x-1][y] = temp;
x--;
}else if(num == 1 && check(x,y-1)){
//向上
int temp = arr[x][y];
arr[x][y] = arr[x][y-1];
arr[x][y-1] = temp;
y--;
}else if(num == 2 && check(x+1,y)){
//向右
int temp = arr[x][y];
arr[x][y] = arr[x+1][y];
arr[x+1][y] = temp;
x++;
}else if(num == 3 && check(x,y+1)){
//向下
int temp = arr[x][y];
arr[x][y] = arr[x][y+1];
arr[x][y+1] = temp;
y++;
}
}
int temp = x;
x = y;
y = temp;
data = arr;
}
private void initImage(){
//先加载的图片会在最上面 所以如果要交换图片的话要把所有的图片清空重新加载
this.getContentPane().removeAll();
//添加计步的功能
JLabel StepJlabel = new JLabel("步数:"+this.step);
StepJlabel.setBounds(50,30,100,20);
this.getContentPane().add(StepJlabel);
if(checkIsVictory()){
JLabel winJlabel = new JLabel(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\win.png"));
winJlabel.setBounds(83+105*1,132+105*3,197,73);
this.getContentPane().add(winJlabel);
}
String end = ".jpg";
int number = 0;
for(int h = 0;h < 105*4;h+=105){
for(int w = 0;w < 105*4;w += 105){
String path = start + data[number/4][number%4] + end;
//创建图片对象
ImageIcon icon = new ImageIcon(path); // 如果没有这个路径 会默认添加一个空白图片
// 创建JLable对象 (管理容器) 默认是把图片放在界面的中间
JLabel jLabel = new JLabel(icon);
jLabel.setBounds(w+83,h+134,105,105);
//给图片添加边框 0代表凸出来 1代表陷进去的
jLabel.setBorder(new BevelBorder(1));
//把管理容器添加到主界面中
this.getContentPane().add(jLabel); // 如果把JFrame看成一个相框的外框和和玻璃 那getContentPane就是里面放照片的地板 组件(JLabel等):贴在底板上的照片
number++;
}
}
//添加背景图
ImageIcon backGround = new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\background.png");
JLabel jlabel1 = new JLabel(backGround);
jlabel1.setBounds(38,40,508,560);
this.getContentPane().add(jlabel1);
//刷新一下界面
this.getContentPane().repaint();
}
private void getCompletedImage(){
this.getContentPane().removeAll();
String path = start + "all.jpg";
ImageIcon icon = new ImageIcon(path);
JLabel jlabel = new JLabel(icon);
jlabel.setBounds(83,132,420,420);
this.getContentPane().add(jlabel);
ImageIcon backGround = new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\background.png");
JLabel jlabel1 = new JLabel(backGround);
jlabel1.setBounds(38,40,508,560);
this.getContentPane().add(jlabel1);
this.getContentPane().repaint();
}
public void victory(){
this.getContentPane().removeAll();
int cnt = 1;
for(int i = 0;i < 4;i++){
for(int j = 0;j < 4;j++){
String path = start + cnt + ".jpg";
ImageIcon icon = new ImageIcon(path);
JLabel jlabel = new JLabel(icon);
jlabel.setBorder(new BevelBorder(1));
jlabel.setBounds(83+j*105,132+i*105,105,105);
this.getContentPane().add(jlabel);
data[i][j] = cnt++;
}
}
x = 3;
y = 3;
//添加背景框
ImageIcon icon = new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\background.png");
JLabel jlabel = new JLabel(icon);
jlabel.setBounds(38,40,508,560);
this.getContentPane().add(jlabel);
this.getContentPane().repaint();
}
//判断是否胜利
public boolean checkIsVictory(){
int cnt = 1;
for(int i = 0;i < 4;i++){
for(int j = 0; j < 4;j++){
if(cnt == 16) return true;
if(data[i][j] != cnt++) return false;
}
}
return true;
}
//检查移动是否越界
public boolean check(int x,int y){
return x >= 0 && x < 4 && y >= 0 && y < 4;
}
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
if((char)code == 'A'){
getCompletedImage();
}
}
@Override
public void keyReleased(KeyEvent e) {
int code = e.getKeyCode();
if(code == 37 && check(x-1,y)){
//左
step++;
int temp = data[y][x];
data[y][x] = data[y][x-1];
data[y][x-1] = temp;
x--;
initImage();
System.out.println("向左移动一格");
}else if(code == 38 && check(x,y-1)){
//上
step++;
int temp = data[y-1][x];
data[y-1][x] = data[y][x];
data[y][x] = temp;
y--;
initImage();
System.out.println("向上移动一格");
}else if(code == 39 && check(x+1,y)){
//右
step++;
int temp = data[y][x];
data[y][x] = data[y][x+1];
data[y][x+1] = temp;
x++;
initImage();
System.out.println("向右移动一格");
}else if(code == 40 && check(x,y+1)){
//下
step++;
int temp = data[y+1][x];
data[y+1][x] = data[y][x];
data[y][x] = temp;
y++;
initImage();
System.out.println("向下移动一格");
}else if((char)code == 'A'){
initImage();
}else if((char)code == 'W'){
data = win;
x = 3;
y = 3;
initImage();
}
}
}
//快捷键的使用
// 快速双击单词 按住Ctrl+</>键
// 能跳转到单词的末尾或者开头
// 按Ctrl+w 能选中这个单词
// 第一次按是选中这个单词 第二次是选中整个表达式 第三次是整个语句 第四次是整个代码块 是逐渐扩大范围
LoginJFrame
package demo;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import demo.User;
public class LoginJFrame extends JFrame implements MouseListener{
//创建一个用户
ArrayList<User> users = new ArrayList<>();
//绑定登录按钮
JButton loginJButton = new JButton("登录");
//绑定注册按钮
JButton registerJButton = new JButton("注册");
//绑定验证码按钮
String IdentifyCode = Tool.getIdentifyCode();
JButton IdentifyCodeJButton = new JButton(IdentifyCode);
//添加用户名输入框
JTextField userJtextfield = new JTextField();
//添加用户名输入框
JTextField passwordJtextfield = new JTextField();
// 添加验证码输入框
JTextField IdentifyJtextfield = new JTextField();
LoginJFrame(){
users.add(new User("zhangsan","123456"));
users.add(new User("lishi","123456"));
//初始化界面
init();
//设置图片
initImage();
//显示界面
this.setVisible(true);
}
//初始化界面
public void init(){
this.setSize(488,430);
//设置标题
this.setTitle("拼图 登录");
// 设置界面置顶
this.setAlwaysOnTop(true);
//设置界面居中
this.setLocationRelativeTo(null);
//设置页面关闭模式
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);// 参数是一个接口中的一个常量 这个是3 代表的是如果有多个窗口 只要关闭 程序就终止
this.setLayout(null);
}
public void initImage(){
//添加用户名文字
JLabel userJlabel = new JLabel(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\login\\用户名.png"));
userJlabel.setBounds(116,135,51,19);
this.add(userJlabel);
//添加密码文字
JLabel PasswordJlabel = new JLabel(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\login\\密码.png"));
PasswordJlabel.setBounds(130,195,35,18);
this.add(PasswordJlabel);
//添加验证码
JLabel IdentifyJlabel = new JLabel(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\login\\验证码.png"));
IdentifyJlabel.setBounds(116,250,56,21);
this.add(IdentifyJlabel);
userJtextfield.setBounds(195,134,200,30);
this.add(userJtextfield);
passwordJtextfield.setBounds(195,195,200,30);
this.add(passwordJtextfield);
IdentifyJtextfield.setBounds(195,250,200,30);
this.add(IdentifyJtextfield);
loginJButton.setIcon(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\login\\登录按钮.png"));
loginJButton.setBounds(133,310,100,40);
//给按钮添加鼠标监听器
loginJButton.addMouseListener(this);
this.add(loginJButton);
registerJButton.setBounds(256,310,100,40);
registerJButton.setIcon(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\login\\注册按钮.png"));
//给按钮添加鼠标监听器
registerJButton.addMouseListener(this);
this.add(registerJButton);
//给验证码按钮添加鼠标监听器事件 去掉默认的背景
IdentifyCodeJButton.setOpaque(false); // 设置不透明为false
IdentifyCodeJButton.setContentAreaFilled(false); // 设置内容区域不填充
IdentifyCodeJButton.setBorderPainted(false); //去掉边框
IdentifyCodeJButton.setBounds(380,250,80,30);
IdentifyCodeJButton.addMouseListener(this);
this.add(IdentifyCodeJButton);
JLabel backgroundJlabel = new JLabel(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\login\\background.png"));
backgroundJlabel.setBounds(0,0,470,390);
this.getContentPane().add(backgroundJlabel);
}
public void getJDialog(String text){
JDialog jDialog = new JDialog();
//创建一个管理图片的容器对象
JLabel jLabel = new JLabel(text);
//设置图片管理容器的大小
jLabel.setBounds(0,0,200,100);
//把容器添加到弹框中
jDialog.add(jLabel);
//设置弹框大小
jDialog.setSize(200,100);
//让弹框总是置顶 就是显示在最上层
jDialog.setAlwaysOnTop(true);
//让弹框居中
jDialog.setLocationRelativeTo(null);
//弹框不关闭 无法操作小面的界面
jDialog.setModal(true);
// 让弹框显示
jDialog.setVisible(true);
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
Object o = e.getSource();
if(o == loginJButton){
//显示深色的图片
loginJButton.setIcon(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\login\\登录按下.png"));
}else if(o == registerJButton){
registerJButton.setIcon(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\login\\注册按下.png"));
}
}
@Override
public void mouseReleased(MouseEvent e) {
Object o = e.getSource();
if(o == loginJButton){
String userName = userJtextfield.getText();
String userPassword = passwordJtextfield.getText();
String Identify = IdentifyJtextfield.getText();
if(!Identify.equals(IdentifyCode)){
loginJButton.setIcon(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\login\\登录按钮.png"));
getJDialog("验证码错误");
return;
}
for (int i = 0; i < users.size(); i++) {
User user = users.get(i);
if(user.getName().equals(userName) && user.getPassword().equals(userPassword)){
System.out.println("登录成功");
this.setVisible(false);
GameJFrame gameFrame = new GameJFrame();
return;
}
}
loginJButton.setIcon(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\login\\登录按钮.png"));
getJDialog("密码或者账号错误,登录失败");
}else if(o == IdentifyCodeJButton){
IdentifyCode = Tool.getIdentifyCode();
IdentifyCodeJButton.setText(IdentifyCode);
}else if(o == registerJButton){
this.setVisible(false);
new RegisterJFrame(this);
registerJButton.setIcon(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\login\\注册按钮.png"));
}
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}
RegisterJFrame
package demo;
import javax.swing.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
public class RegisterJFrame extends JFrame implements MouseListener{
LoginJFrame loginJFrame;
//绑定登录按钮
JButton registerJButton = new JButton("注册");
//绑定注册按钮
JButton resetJButton = new JButton("重置");
//添加注册用户名输入框
JTextField registerUserJtextfield = new JTextField();
//添加注册密码输入框
JTextField registerPasswordJtextfield = new JTextField();
// 添加再次输入密码输入框
JTextField repasswordJtextfield = new JTextField();
RegisterJFrame(LoginJFrame loginJFrame){
this.loginJFrame = loginJFrame;
//初始化界面
init();
//设置图片
initImage();
//显示界面
this.setVisible(true);
}
//初始化界面
public void init(){
this.setSize(488,430);
//设置标题
this.setTitle("拼图 登录");
// 设置界面置顶
this.setAlwaysOnTop(true);
//设置界面居中
this.setLocationRelativeTo(null);
//设置页面关闭模式
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);// 参数是一个接口中的一个常量 这个是3 代表的是如果有多个窗口 只要关闭 程序就终止
this.setLayout(null);
}
public void initImage(){
//添加用户名文字
JLabel registerUserJLabel = new JLabel(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\register\\注册用户名.png"));
registerUserJLabel.setBounds(106,138,79,17);
this.add(registerUserJLabel);
//添加密码文字
JLabel registerPasswordJLabel = new JLabel(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\register\\注册密码.png"));
registerPasswordJLabel.setBounds(115,198,64,16);
this.add(registerPasswordJLabel);
//添加验证码
JLabel IdentifyJlabel = new JLabel(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\register\\再次输入密码.png"));
IdentifyJlabel.setBounds(95,255,96,17);
this.add(IdentifyJlabel);
registerUserJtextfield.setBounds(195,134,200,30);
this.add(registerUserJtextfield);
registerPasswordJtextfield.setBounds(195,195,200,30);
this.add(registerPasswordJtextfield);
repasswordJtextfield.setBounds(195,250,200,30);
this.add(repasswordJtextfield);
registerJButton.setIcon(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\register\\注册按钮.png"));
registerJButton.setBounds(133,310,100,40);
//给按钮添加鼠标监听器
registerJButton.addMouseListener(this);
this.add(registerJButton);
resetJButton.setBounds(256,310,100,40);
resetJButton.setIcon(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\register\\重置按钮.png"));
//给按钮添加鼠标监听器
resetJButton.addMouseListener(this);
this.add(resetJButton);
JLabel backgroundJlabel = new JLabel(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\login\\background.png"));
backgroundJlabel.setBounds(0,0,470,390);
this.getContentPane().add(backgroundJlabel);
}
public void getJDialog(String text){
JDialog jDialog = new JDialog();
//创建一个管理图片的容器对象
JLabel jLabel = new JLabel(text);
//设置图片管理容器的大小
jLabel.setBounds(0,0,200,100);
//把容器添加到弹框中
jDialog.add(jLabel);
//设置弹框大小
jDialog.setSize(200,100);
//让弹框总是置顶 就是显示在最上层
jDialog.setAlwaysOnTop(true);
//让弹框居中
jDialog.setLocationRelativeTo(null);
//弹框不关闭 无法操作小面的界面
jDialog.setModal(true);
// 让弹框显示
jDialog.setVisible(true);
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
Object o = e.getSource();
if(o == registerJButton){
//显示深色的图片
registerJButton.setIcon(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\register\\注册按下.png"));
}else if(o == resetJButton){
resetJButton.setIcon(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\register\\重置按下.png"));
}
}
@Override
public void mouseReleased(MouseEvent e) {
Object o = e.getSource();
if(o == registerJButton){
String userName = registerUserJtextfield.getText();
String userPassword = registerPasswordJtextfield.getText();
String reSet = repasswordJtextfield.getText();
if(!reSet.equals(userPassword)){
getJDialog("两次密码不一致");
registerJButton.setIcon(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\register\\注册按钮.png"));
return;
}
if(userName.equals("")){
getJDialog("用户名为空");
registerJButton.setIcon(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\register\\注册按钮.png"));
return;
}
for (int i = 0; i < loginJFrame.users.size(); i++) {
User temp = loginJFrame.users.get(i);
if(temp.getName().equals(userName)){
getJDialog("用户已存在");
registerJButton.setIcon(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\register\\注册按钮.png"));
return;
}
}
//注册成功 就添加用户
User new_User = new User(userName,userPassword);
loginJFrame.users.add(new_User);
getJDialog("注册成功");
loginJFrame.setVisible(true);
this.setVisible(false);
}else if(o == resetJButton){
registerUserJtextfield.setText("");
registerPasswordJtextfield.setText("");
repasswordJtextfield.setText("");
resetJButton.setIcon(new ImageIcon("D:\\java-learn\\java-project\\day13-code\\day13-code\\image\\register\\重置按钮.png"));
}
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}
Tool
package demo;
import java.util.Random;
public class Tool {
private Tool(){};
//得到一个五位随机验证码
public static String getIdentifyCode(){
char[] arr = new char[5];
//随机生成一个0-9的数字
Random r = new Random();
arr[0] = (char) ('0' + r.nextInt(10));
//生成四个英文字母
for(int i = 1;i < 5;i++){
int temp = r.nextInt(52);
if(temp < 26){
arr[i] = (char)('a'+temp);
}else{
arr[i] = (char)('A'+temp-26);
}
}
for (int i = 0; i < arr.length; i++) {
int temp = r.nextInt(arr.length);
char ch = arr[temp];
arr[temp] = arr[i];
arr[i] = ch;
}
return new String(arr);
}
// public static void main(String[] args) {
// System.out.println(Tool.getIdentifyCode());
// }
}
User
package demo;
public class User {
private String name;
private String password;
public User() {
}
public User(String name, String password) {
this.name = name;
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
更多推荐



所有评论(0)