【问题标题】:Setting the background using a JLabel and an image inserted into it使用 JLabel 和插入其中的图像设置背景
【发布时间】:2016-04-17 16:53:33
【问题描述】:

我一直在做一个有趣的小项目,我目前正在处理背景,但是它真的很小,为了改变它,我将尺寸设置为最大屏幕尺寸(项目是全屏的)

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

【问题讨论】:

    标签: java background imageicon


    【解决方案1】:

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

    【讨论】:

    • 是否会将其转换为常规图像,然后调整其大小,然后将其更改回图像图标并将其应用于标签工作?
    • 您不需要转换它,将其保留为图像图标,只需确保格式保持不变即可。我建议使用paint.net(微软免费提供),因为它只会改变图像的大小,不会像普通的 MS 绘画那样影响它的任何其他属性。
    • 我找到了可以用来调整大小的方法,但现在找不到图像,它在资源文件夹中,它是一个源文件夹。
    • 查看您使用的代码,要实现您想要做的事情需要很长的路。只需使用paint.net 调整它的大小,您所要做的就是从项目中的Java 包中调用图像。它更快更容易一百万倍。保持简单直截了当,您会遇到更少的问题。
    • 但问题是,如果我想在某个时候全屏显示呢?每个屏幕尺寸都不一样
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 2020-02-04
    相关资源
    最近更新 更多