gui实现2048小游戏
1.登录模块
public class LoginJFrame extends JFrame implements MouseListener{
//登录按钮
JButton login = new JButton();
//注册按钮
JButton register = new JButton();
//用户名输入文本框
JTextField username = new JTextField();
//密码输入文本框
JTextField password = new JTextField();
//弹窗提示
JDialog jDialog = new JDialog();
//Arraylist集合存取用户数据
ArrayList userlist;
ArrayList usernamelist;
public LoginJFrame(ArrayList userlist,ArrayList usernamelist) {
this.userlist = userlist;
this.usernamelist = username;
initFrame();
initView();
setVisible(true);
}
public void initView() {
//创建JLabel添加用户名文字
JLabel usernameText = new JLabel(new ImageIcon(“C:\Users\全息\Desktop\图片&代码\2048登录注册\用户名.jpg”));
usernameText.setBounds(116, 135, 51, 19);
username.setBounds(195, 134, 200, 30);
//创建JLabel添加密码文字
JLabel passwordText = new JLabel(new ImageIcon(“C:\Users\全息\Desktop\图片&代码\2048登录注册\密码.jpg”));
passwordText.setBounds(130, 195, 35, 18);
password.setBounds(195, 195, 200, 30);
login.setIcon(new ImageIcon(“C:\Users\全息\Desktop\图片&代码\2048登录注册\登录.png”));
login.setBounds(133, 260, 90, 40);
//给登录按钮绑定鼠标监听
//当事件被触发之后,执行当前类中的对应方法
login.addMouseListener(this);
register.setIcon(new ImageIcon(“C:\Users\全息\Desktop\图片&代码\2048登录注册\注册.png”));
register.setBounds(256, 260, 90, 40);
register.addMouseListener(this);
JLabel backGround = new JLabel(new ImageIcon(“C:\Users\全息\Desktop\图片&代码\2048登录注册\background.png”));
backGround.setBounds(0, 0, 470, 390);
//绑定组件
this.getContentPane().add(username);
this.getContentPane().add(password);
this.getContentPane().add(usernameText);
this.getContentPane().add(passwordText);
this.getContentPane().add(login);
this.getContentPane().add(register);
this.getContentPane().add(backGround);
}
public void initFrame() {
//大小
setSize(488, 430);
//居中
setLocationRelativeTo(null);
//置顶
setAlwaysOnTop(true);
//关闭模式
setDefaultCloseOperation(3);
//取消内部默认布局
setLayout(null);
}
@Override
public void mouseClicked(MouseEvent e) {
//校验用户输入的用户名和密码是否正确。
//得到文本输入框里面的文本(内容)
/*//1.得到用户输入的用户名和密码
//2.比较
//3.根据不同的结果做出不同的反应
//如果正确,进入游戏界面
//如果不正确,弹出错误提示。
*/
String text = username.getText();
String text1 = password.getText();
if (e.getSource() == login) {
if("".equals(username.getText()) && “”.equals(password.getText())){
System.out.println(“用户名和密码为空”);
showDialog(“小样,还没输用户名和密码呢”);
}
User e1 = new User(username.getText(), password.getText());
userlist.add(e1);
if (userlist.contains(e1) ) {
System.out.println(“用户名和密码正确”);
//把当前的登录界面关闭
this.setVisible(false);
//展示游戏界面.equals(text)get(1).getPassword().equals(text1)
new MainFrame();
} else {
System.out.println(“用户名和密码错误”);
//如果错误了,还需要给出弹框
showDialog(“小样,用户名和密码输错了”);
}
}else if(e.getSource() == register){
System.out.println(“111”);
this.setVisible(false);
//点击了注册按钮
new RegisterJFrame(userlist,usernamelist);
}
}
//该方法用于展示一个弹框
//形参:表示当前弹框展示的内容
public void showDialog(String content) {
//JDialog就是一个弹框,跟JFrame是一样的
//isVisible表示判断弹框是否展示出来,
//如果没有展示出来,我们才进行设置,并展示
if(!jDialog.isVisible()){
//设置弹框的宽和高
jDialog.setSize(100, 100);
//居中
jDialog.setLocationRelativeTo(null);
//置顶
jDialog.setAlwaysOnTop(true);
//删除弹框中所有的内容
jDialog.getContentPane().removeAll();
//创建一个JLabel去编写文本内容
JLabel jLabel = new JLabel(content);
//把文本添加到弹框当中
jDialog.add(jLabel);
//把弹框展示出来
jDialog.setVisible(true);
}
}
@Override
public void mousePressed(MouseEvent e) {
//修改背景图片
//判断一下,当前按下的是否为登录按钮
if (e.getSource() == login) {
login.setIcon(new ImageIcon(“C:\Users\全息\Desktop\图片&代码\2048登录注册\登录按下.png”));
}
}
@Override
public void mouseReleased(MouseEvent e) {
//当鼠标松开的时候,需要把背景色改回来
if (e.getSource() == login) {
login.setIcon(new ImageIcon