首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

JPANEL图片背景的设立方法

2013-08-01 
JPANEL图片背景的设置方法要想在JPANEL添加背景,要么就是PAINT画上去,要么就是加个JLABEL用图片填充;但是J

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;
    }
     
}

热点排行