package ui;
import javax.swing.;
import java.awt.;
/**
- 游戏的窗体 :窗体的固定模式
- java中的窗体类:JFrame
- 自定义窗体步骤:
-
1:写一个类,继承JFrame
-
2:写一个构造方法,初始化窗体的属性;属性对应特点,方法对应行为
*/
public class GameFrame extends JFrame{
//构造方法:方法名和类名一样
//构造方法的作用: 新的一年模具,给对象定型
public GameFrame() {
//设置标题 setTitle继承了 JFrame 所以不会报错
setTitle(“全民飞机大战”);
//设置大小 :宽和高 (512 768 )位置居中数据
setSize(512,700); //768相对于我的电脑界面太长,出界了.
//设置位置居中显示 null表示相对于屏幕左上角居中
setLocationRelativeTo(null);
//设置不允许玩家改变界面的大小
setResizable(false);
//设置默认的关闭选项 即关闭窗口就退出程序
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//程序入口
public static void main(String[] args) {
//创建对象
// GameFrame类 ; frame对象名即对象的引用; new GameFrame()对象
GameFrame frame = new GameFrame();
//创建面板的对象,调用面板的构造方法 ,制作面板
GamePanel panel = new GamePanel();
//将面板加入窗体中 add增加
frame.add(panel);
//显示窗体 true 表示显示 false 表示隐藏
frame.setVisible(true);
}
}
package ui;
import javax.swing.;
import java.awt.;
import java.awt.font.ImageGraphicAttribute;
import java.awt.image.BufferedImage;
/**
- java中的游戏面板:JPanel
- 自定义游戏面板
- 1:写一个类,继承JPanel
- 2:写一个构造方法,初始化(确定)面板的属性
- 画图的步骤:
-
1:在类中定义图片,并取名
-
2:在构造方法中,调用工具初始化图片
-
3:在画图方法path中,画图片
*/
public class GamePanel extends JPanel{
//定义背景图,1:取名
BufferedImage bg;//背景图
//构造方法:确定面板的特点
public GamePanel(){
//设置背景
setBackground(Color.green);
//初始化图片
bg = App.getImg("/img/bg2.jpg");
}
//专用画图方法:paint方法的写法,先打paint出来,然后在按键盘alt+回车
//Graphics g 画笔;
@Override
public void paint(Graphics g) {
super.paint(g);
//画图片格式
//g.drawImage(图片,图片的横坐标,图片的纵坐标,null);
g.drawImage(bg,0,0,null);
}
}
package ui;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.IOException;
/**
- 处理图片的工具类;
-
工具类的写法;工具类中一般会将项目中需要重复使用的代码抽离出来,定义成工具方法
-
工具类的方法:一般需要加static,加static的目的.
-
static特点:1:公用的,所有对象都共用这一份
-
2:static修饰不依赖对象,可以直接通过类名调用
*/
public class App {
//读取指定位置上的图片
//path路径,指代所有图片;BufferedImage图像缓冲区,java中用来表示图片的类; getImg获得图片
public static BufferedImage getImg(String path){
//java中的IO流,输送数据的管道
//App.class找到App类的路径,etResource()获取资源
//写完会报错: 报错处理,idea是alt+回车,选surround…
//try的意思是尝试
try {
BufferedImage img = ImageIO.read(App.class.getResource(path));
//如果找到图片,就将图片返回
return img;
//catch是抓
} catch (IOException e) {
//如果找不到图片 ,就会捕获找不到的原因
e.printStackTrace();
}
return null;
}
}