之前我们已经生成了一个空白的窗口,接下来我们要在这个窗口上添加背景。
我们新建一个MyPanel的类用来单独设置面板。
MyPanel是继承于JPanel的一个子类。导入所需的包。

package view;import javax.swing.JPanel;public class MyPanel extends JPanel{}

然后新建一个图片类型的变量用来存放我们的背景。导入相关所需的包。

package view;import java.awt.Image;import javax.swing.JPanel;public class MyPanel extends JPanel{public Image bgImage;}

接着我们使用
this.bgImage = Toolkit.getDefaultToolkit().getImage(“images/bg01.jpg”);
把背景图片放入,导入相关的包。

package view;import java.awt.Image;
import java.awt.Toolkit;import javax.swing.JPanel;public class MyPanel extends JPanel{public Image bgImage;public MyPanel(){//设置背景this.bgImage = Toolkit.getDefaultToolkit().getImage("images/bg01.jpg");}}

现在图片创建好了,接下来我们设置背景图片的一些参数,设置在窗口的位置。

我们使用重构父类的paintComponent()方法来设置自记得背景图。

package view;import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;import javax.swing.JPanel;public class MyPanel extends JPanel{public Image bgImage;public MyPanel(){//设置背景this.bgImage = Toolkit.getDefaultToolkit().getImage("images/bg01.jpg");}public void paintComment(Graphics g){super.paintComponent(g);g.drawImage(this.bgImage, 0,0-this.bgImage.getHeight(this), this.bgImage.getWidth(this),this.bgImage.getHeight(this),null);g.drawImage(this.bgImage, 0,0, this.bgImage.getWidth(this),this.bgImage.getHeight(this),null);}}

这里的paintComment()是自动调用的。 这里还有一些疑惑的地方,就是不知道具体是怎么实现的自动调用,这个就先放下吧。。。

然后我们去BaseFrame类中新建一个MyPanel类型的对象。新建 - > 设置位置-> 添加到窗口中
新建:this.myPanel = new MyPanel();
设置位置 : this.myPanel.setBounds(0,0,frameWidth, frameHeight);
添加组件: this.add(myPanel);

package view;import java.awt.Dimension;
import java.awt.Toolkit;import javax.swing.JFrame;public class BaseFrame extends JFrame{public static int frameWidth = 512, frameHeight = 768;public MyPanel myPanel;public BaseFrame(){super("飞机大战");setBounds(100, 0, frameWidth, frameHeight);setLayout(null);this.myPanel = new MyPanel();this.myPanel.setBounds(0,0,frameWidth, frameHeight);this.add(myPanel);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}

飞机大战之-添加背景相关推荐

  1. ES6飞机大战篇-添加子弹追踪功能

    既然是飞机大战 那必定少不了子弹追踪 那么添加子弹追踪功能的实现如下: // 原文链接:https://blog.csdn.net/erweimac/article/details/82256087 ...

  2. 飞机大战之-添加子弹

    现在添加字段对象,子弹,敌机,玩家,都是属于modle包中的对象,所以我们新建一个类Bullet 1/定义子弹需要的一些常量,子弹图片的长宽,子弹的坐标. 然后使用Tooklit.getDefault ...

  3. pygame为游戏添加背景_用 Python 制作飞机大战小游戏

    这这次用Python中的pygame模块来完成一个飞机大战的小游戏:基本思路是通过方向键来控制飞机的左右移动射击飞船.先来看下最后的效果为了新手也能完成,本文记录了编写的全部流程,也就是每次修改的代码 ...

  4. 飞机大战小游戏(超详细)

    偷学Python之最后的项目二:飞机大战小游戏(超详细) 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志.--苏轼 甜甜先说 这次用Python中的pygame模块来完成一个飞机大战的小游戏:基本思 ...

  5. 手把手教你使用Pygame制作飞机大战小游戏,4万字超详细讲解!

    点击上方"早起Python",关注并"星标" 每日接收原创Python干货! 大家好,偷学Python系列是由小甜同学从初学者的角度学习Python的笔记,其特 ...

  6. Python3+pygame实现有趣好玩的飞机大战游戏(附源码及素材)

    版权声明:原创不易,本文禁止抄袭.转载,侵权必究! 目录 一.开发环境 二.功能模块 三.游戏效果 四.完整项目下载 五.作者Info 一.开发环境 开发环境 :Windows10 Python3.6 ...

  7. c++课程设计:飞机大战(图形化界面)

    飞机大战.cpp #include <iostream> #include <graphics.h> #include <time.h> #include < ...

  8. Java Swing 经典小游戏《飞机大战》———— (一)获取素材,创建窗口,添加滚动背景,双缓冲

    (一)最终效果 1.窗口 2.项目框架 (二)效果实现 1.获取素材 获取步骤省略,大家可自行到我的资源获取,放置在src目录下 2. 创建窗口 WinGame.java import java.aw ...

  9. Pygame飞机大战(四)——创建己方飞机的类,并添加子弹吧

    我们接下来要基于pygame.sprite.Sprite创建自己的类,首先必须是主角的,创建一个己方飞机的类,并且给飞机加上子弹哈! 首先我们还是先分析一下,己方飞机需要有哪些部分构成: 自身的图片加 ...

最新文章

  1. 数据科学家:那些年,我都学过哪些编程语言…
  2. Java的for-each循环
  3. 服务:OracleDBConsoleorcl [Agent process exited abnormally during initialization]
  4. 设计模式-创建型模式-工厂模式(工厂三兄弟)
  5. 《实践与思考》系列连载(6)——IT从业人员工作环境及状态调查 抽奖结果公布...
  6. 【码云周刊第 8 期】面试之前,或许该高效率地学点干货了!
  7. db powerdesign CDM、LDM、PDM、OOM的区别
  8. 安卓手机反应慢又卡怎么办_安卓手机出现卡顿反应慢的具体处理方法
  9. Hadoop大数据平台构建与应用
  10. 广发99元旅游分期,来一场说走就走的旅行?
  11. 解压版tomcat安装配置
  12. 代码模块化编程思想!!
  13. 使用命令行连接MySQL数据库
  14. 常用的卫星影像数据查询网址【值得收藏】
  15. cuba study
  16. 虚拟化服务器 戴尔,dell虚拟化服务器配置(戴尔服务器配置)
  17. JAVA兴趣小组申请理由_关于参与兴趣小组申请书范文
  18. 不用代码免费采集网站内容_看一遍就能上手的火车头采集图文全流程教程
  19. UE4家装系统工程源码/内含模型/材质/模型拖拽
  20. 计算机流体力学软件基础及工程应用,流体力学及其工程应用(英文版·原书第10版)2013年版...

热门文章

  1. 【干货】Excel根据条件变换颜色
  2. Vue 项目中使用Lodop进行打印
  3. P5594 模拟赛(乱搞)
  4. 2022 互联网中秋月饼大赏,腾讯送火腿,字节寓意圆满,你最钟爱哪款呢?
  5. 当今的BIOS(UEFI)
  6. 荣耀手机和小米打出了真火,针锋相对比拼千元机
  7. 如何查看AD域账号的删除记录
  8. 刺激战场测试fps软件,腾讯手游助手玩刺激战场怎样设置显示帧数?
  9. facebook聊单?SaleSmatly来助力
  10. 什么是Session 如何使用Session