使用JLabel和插入其中的图像设置背景

时间:2016-04-17 16:53:33

标签: java background imageicon

我一直致力于一个有趣的小项目,我目前在后台工作,但它真的很小,要改变这个我将尺寸设置为最大屏幕尺寸(该项目全屏)

    public void setBackground(JLabel bg) {

    bg = new JLabel(new ImageIcon(this.getClass().getResource("/Background.gif")));

    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int width = (int) d.getWidth();
    int height = (int) d.getHeight();
    bg.setSize(width, height);
    add(bg);

}

然而,它确实增加了JLabel的大小而不是实际的图像大小,为什么会这样?

编辑:

我找到了一种方法,但它似乎找不到指定的路径!我已经创建了一个存储它的资源文件夹(eclipse中的源文件夹)我把它放在那里但它无法读取输入文件。

    public void setBackground(JLabel bg) {
    try {
        img = ImageIO.read(new File("/Background.gif"));
    } catch(Exception e) {
        e.printStackTrace();
    }
    ImageIcon imgi = new ImageIcon(fitimage(img, bg.getWidth(), bg.getHeight()));

    bg.setIcon(imgi);

    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int width = (int) d.getWidth();
    int height = (int) d.getHeight();
    bg.setSize(width, height);
    add(bg);

}

private Image fitimage(Image img , int w , int h) {
    BufferedImage resizedimage = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
    Graphics2D g2 = resizedimage.createGraphics();
    g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    g2.drawImage(img, 0, 0,w,h,null);
    g2.dispose();
    return resizedimage;
}

1 个答案:

答案 0 :(得分:1)

在您的应用程序中使用之前,您可能需要先调整图像大小。它必须与您的标签大小相同。无论图像的实际大小是多少,这都是Java将其显示为的大小,并且不会将其分别自动调整为您的标签