读书人

JPANEL图片背景的设立方法

发布时间: 2013-08-01 15:23:18 作者: rapoo

JPANEL图片背景的设置方法
要想在JPANEL添加背景,要么就是PAINT画上去,要么就是加个JLABEL用图片填充;
但是JABEL上的图片怎么缩放大小或者平铺呢。我是问像HTML里的STRECH几个简单类型,
如:平铺,拉伸,居中这些;
JAVA要怎么实现呢?JLABEL内部可以添加控件吧? 图片 java image
[解决办法]
setBounds()这个方法可以设置JPanel或者JLabel的位置及大小
[解决办法]
使用 swingx中的 JXPanel,调用setBackgroundPainter 设置背景
[解决办法]
平铺是使用TexturePaint 绘制。
[解决办法]
JPanel设置背景的话最合适的方法肯定是在JPanel里面重写paint()方法,
paint里面应该有三个方法,分别是重绘背景,边框,还一个我忘了。
一般重写paintComponent方法就行了,说了这么多,给你个例子吧。


public class BackgroundPanel extends JPanel{

private static final long serialVersionUID = -4716216260810781252L;
protected Image image;

public BackgroundPanel() {
setBounds(0, 0, 400, 400);
setBackground();
}

public void setBackground() {
setImage(Toolkit.getDefaultToolkit().getImage("src"+File.separator+"image"+File.separator+"xiao.jpg"));
}

public void paintComponent(Graphics g) {
super.paintComponent(g);
setBackground(Color.WHITE);
if (image != null) {
int height = image.getHeight(this);
int width = image.getWidth(this);

if (height != -1 && height > getHeight())
height = getHeight();



if (width != -1 && width > getWidth())
width = getWidth();
int x = (int) (((double) (getWidth() - width)) / 2.0);
int y = (int) (((double) (getHeight() - height)) / 2.0);
g.drawImage(image, x, y, width, height, this);
}
}

public Image getImage() {
return image;
}

public void setImage(Image image) {
this.image = image;
}

}

读书人网 >J2SE开发

热点推荐