这个的实现还是比较容易的,以及在容器中写字,画图。这里重写Jpanel容器中的paintComponent()方法来实现这些功能。至于窗口,只需要在窗口之上添加上该容器将其完全覆盖即可。下面来看代码:

public class SetPicture extends JPanel{
	private String picture;//图片位置
	public SetPicture(String s1) {
		this.picture = s1;
	}

	public void paintComponent(Graphics g){
		ImageIcon image = new ImageIcon(picture);
		image.setImage(image.getImage().getScaledInstance(this.getWidth(),this.getHeight(), 
                       Image.SCALE_AREA_AVERAGING));//这里设置图片的大小和窗口的大小相等
		g.drawImage(image.getImage(),0,0,this);//在窗口上画出该图片
	}
}

注意:这里重写方法中的Graphics类不可实例化,使用时间只能在该重写方法中使用!至于写字和画图形,直接使用该类的方法,(可画的图形还是很多的,比如:线,点,圆,字)就可直接在容器的画布上画下相应的图案,当然,需要设置好开始位置和大小,这些都是些小细节。

需要更加注意的是:一定要清楚窗口和容器的概念,窗口就是一个弹窗,其他的各种容器组件都是以它为基础建立的。假如想要添加一个自画的背景,就使用上面的方法,创建一个继承并且重写了paintComponent()方法的类,将其实例化,实例化之后的容器类自带了设置好的背景,至于其他的组件,可以尽情在这容器上添加,因为是该容器覆盖了后面的窗体,因此,组件的添加也是需要在这容器之上,而不是窗体上,不然不可看见。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐