飞机大战之-添加背景

之前我们已经生成了一个空白的窗口,接下来我们要在这个窗口上添加背景。
我们新建一个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
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘璐菲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值