【发布时间】: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