jpanel设置背景图片的二个小例子
这个jpanel可以动态加载一个图片做背景
import java.awt.graphics;
import java.awt.image;
import java.awt.toolkit;
import javax.swing.jpanel;
/**
* 一个可以动态加载一个图片做背景的jpanel
*/
public class imagepanel extends jpanel{
image im;
//构造函数制定jpanel的大小
public imagepanel(image im) {
this.im = im;
//希望该panel的大小事自适应的
int width = toolkit.getdefaulttoolkit().getscreensize().width;
int height = toolkit.getdefaulttoolkit().getscreensize().height;
this.setsize(width,height);
}
//画出背景
@override
protected void paintcomponent(graphics g) {
// 清屏
super.paintcomponent(g);
g.drawimage(im, 0, 0, this.getwidth(), this.getheight(), this);
}
}
jpanel面板中设置背景图片的另外一个例子
import java.awt.*;
import javax.swing.*;
public class demo extends jframe
{
public demo()
{
super("title");
newpanel p = new newpanel();
this.getcontentpane().add(p); //将面板添加到jframe上
this.setsize(596,298); //初始窗口的大小
this.setlocationrelativeto(null); //设置窗口居中
this.setdefaultcloseoperation(jframe.exit_on_close);
this.setvisible(true);
}
public static void main(string[] args)
{
new demo();
}
class newpanel extends jpanel
{
public newpanel()
{
}
public void paintcomponent(graphics g)
{
int x=0,y=0;
java.net.url imgurl=getclass().getresource("test.jpg");
//test.jpg是测试图片,与demo.java放在同一目录下
imageicon icon=new imageicon(imgurl);
g.drawimage(icon.getimage(),x,y,getsize().width,getsize().height,this);
while(true)
{
g.drawimage(icon.getimage(),x,y,this);
if(x>getsize().width && y>getsize().height)break;
//这段代码是为了保证在窗口大于图片时,图片仍能覆盖整个窗口
if(x>getsize().width)
{
x=0;
y+=icon.geticonheight();
}
else
x+=icon.geticonwidth();
}
}
}
}