Java实现拼图小游戏(1)—— JFrame的认识及界面搭建

简介: 如果要在某一个界面里面添加功能的话,都在一个类中,会显得代码难以阅读,而且修改起来也会很困难,所以我们将游戏主界面、登录界面、以及注册界面都单独编成一个类,每一个类都继承JFrame父类,并且在类中创建方法来来实现页面

一、前言


本文主要是介绍JFrame以及简单的搭建界面


二、主界面分析


0e3799ab77f4406cbf89948dc7dca29f.png


三、创建主界面的框(测试类)


1.步骤


  • 首先我们要新建对象
  • 设置界面的大小(长宽)
  • 设置界面可视化(如果没有这个步骤,屏幕上不会显示出来东西)
  • 设置游戏主界面、登录界面以及注册界面


2.代码实现


import javax.swing.*;
public class Test {
    public static void main(String[] args) {
        //创建游戏主界面
        JFrame gameJFrame = new JFrame();
        //设置长宽
        gameJFrame.setSize(603,680);
        //设置可视化
        gameJFrame.setVisible(true);
        //创建登录界面
        JFrame loginJFrame = new JFrame();
        loginJFrame.setSize(488,430);
        loginJFrame.setVisible(true);
        //创建注册界面
        JFrame registerJFrame = new JFrame();
        registerJFrame.setSize(488,500);
        registerJFrame.setVisible(true);
    }
}


3.测试代码


b927153e9ceb406ab67a275bd7833117.png


四、设置标题以及位置


1.设置标题


gameJFrame.setTitle("拼图小游戏 V1.0");
loginJFrame.setTitle("登录游戏");
registerJFrame.setTitle("注册");


2.设置界面位置


设置永远置顶


gameJFrame.setAlwaysOnTop(true);
loginJFrame.setAlwaysOnTop(true);
registerJFrame.setAlwaysOnTop(true);


设置界面居中


gameJFrame.setLocationRelativeTo(null);
loginJFrame.setLocationRelativeTo(null);
registerJFrame.setLocationRelativeTo(null);


3.设置关闭模式


此处如果对于关闭模式有疑问的话,可以点击下方链接查看


JFrame中有关于DefaultCloseOperation的使用及参数说明(含源码阅读)


gameJFrame.setDefaultCloseOperation(3);
loginJFrame.setDefaultCloseOperation(3);
registerJFrame.setDefaultCloseOperation(3);


五、优化代码


1.解释


如果要在某一个界面里面添加功能的话,都在一个类中,会显得代码难以阅读,而且修改起来也会很困难,所以我们将游戏主界面、登录界面、以及注册界面都单独编成一个类,每一个类都继承JFrame父类,并且在类中创建方法来来实现页面


2.游戏主界面


import javax.swing.*;
public class GameJFrame extends JFrame {
    public  GameJFrame(){
        //设置界面大小
        this.setSize(603,680);
        //设置标题
        this.setTitle("拼图小游戏 V1.0");
        //设置永远置顶
        this.setAlwaysOnTop(true);
        //设置程序随着窗口关闭而结束运行
        //this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        this.setDefaultCloseOperation(3);
        //设置界面居中
        this.setLocationRelativeTo(null);
        //设置界面可视化
        this.setVisible(true);
  }
}


3.登录界面


import javax.swing.*;
public class LoginJFrame extends JFrame {
    public LoginJFrame(){
        //设置界面大小
        this.setSize(488,430);
        //设置标题
        this.setTitle("登录游戏");
        //设置永远置顶
        this.setAlwaysOnTop(true);
        //设置程序随着窗口关闭而结束运行
        //this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        this.setDefaultCloseOperation(3);
        //设置界面居中
        this.setLocationRelativeTo(null);
        //设置界面可视化
        this.setVisible(true);
    }
}


4.注册界面


import javax.swing.*;
public class RegisterJFrame extends JFrame {
    public  RegisterJFrame(){
        //设置界面大小
        this.setSize(488,430);
        //设置标题
        this.setTitle("注册");
        //设置永远置顶
        this.setAlwaysOnTop(true);
        //设置程序随着窗口关闭而结束运行
        //this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        this.setDefaultCloseOperation(3);
        //设置界面居中
        this.setLocationRelativeTo(null);
        //设置界面可视化
        this.setVisible(true);
    }
}


六、结语


下一篇文章会讲述有关菜单搭建的内容,如果在自己写代码的过程中遇到了问题可以留言评论

相关文章
|
3天前
|
Java 程序员 图形学
程序员教你用代码制作飞翔的小鸟--Java小游戏,正好拿去和给女神一起玩
《飞扬的小鸟》Java实现摘要:使用IntelliJ IDEA和JDK 16开发,包含小鸟类`Bird`,处理小鸟的位置、速度和碰撞检测。代码示例展示小鸟图像的加载、绘制与旋转。同时有`Music`类用于循环播放背景音乐。游戏运行时检查小鸟是否撞到地面、柱子或星星,并实现翅膀煽动效果。简单易懂,可直接复制使用。
|
6天前
|
存储 Java
0基础java初学者都能做的打字通小游戏? 内含源码解读和细致讲解!!
0基础java初学者都能做的打字通小游戏? 内含源码解读和细致讲解!!
17 2
0基础java初学者都能做的打字通小游戏? 内含源码解读和细致讲解!!
|
1月前
|
Java Android开发
象棋小游戏【小游戏】(Java课设)
象棋小游戏【小游戏】(Java课设)
13 2
|
1月前
|
Java Android开发
贪吃蛇小游戏【小游戏】(Java课设)
贪吃蛇小游戏【小游戏】(Java课设)
17 1
|
1月前
|
Java Android开发
五子棋小游戏【小游戏】(Java课设)
五子棋小游戏【小游戏】(Java课设)
13 0
|
Java 图形学
|
3天前
|
Java 数据库
【Java多线程】对线程池的理解并模拟实现线程池
【Java多线程】对线程池的理解并模拟实现线程池
12 1
|
1天前
|
Java
Java一分钟:线程协作:wait(), notify(), notifyAll()
【5月更文挑战第11天】本文介绍了Java多线程编程中的`wait()`, `notify()`, `notifyAll()`方法,它们用于线程间通信和同步。这些方法在`synchronized`代码块中使用,控制线程执行和资源访问。文章讨论了常见问题,如死锁、未捕获异常、同步使用错误及通知错误,并提供了生产者-消费者模型的示例代码,强调理解并正确使用这些方法对实现线程协作的重要性。
9 3
|
1天前
|
安全 算法 Java
Java一分钟:线程同步:synchronized关键字
【5月更文挑战第11天】Java中的`synchronized`关键字用于线程同步,防止竞态条件,确保数据一致性。本文介绍了其工作原理、常见问题及避免策略。同步方法和同步代码块是两种使用形式,需注意避免死锁、过度使用导致的性能影响以及理解锁的可重入性和升级降级机制。示例展示了同步方法和代码块的运用,以及如何避免死锁。正确使用`synchronized`是编写多线程安全代码的核心。
17 2
|
1天前
|
安全 Java 调度
Java一分钟:多线程编程初步:Thread类与Runnable接口
【5月更文挑战第11天】本文介绍了Java中创建线程的两种方式:继承Thread类和实现Runnable接口,并讨论了多线程编程中的常见问题,如资源浪费、线程安全、死锁和优先级问题,提出了解决策略。示例展示了线程通信的生产者-消费者模型,强调理解和掌握线程操作对编写高效并发程序的重要性。
13 3