日期:2014-05-20  浏览次数:20638 次

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();