我用谷歌搜索并找到了代码:
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ImageTest {
public static void main(String[] args) {
ImagePanel panel = new ImagePanel(new ImageIcon("background.png").getImage());
JFrame frame = new JFrame();
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}
class ImagePanel extends JPanel {
private Image img;
public ImagePanel(String img) {
this(new ImageIcon(img).getImage());
}
public ImagePanel(Image img) {
this.img = img;
Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setSize(size);
setLayout(null);
}
public void paintComponent(Graphics g) {
g.drawImage(img, 0, 0, null);
}
}
当我创建 ImageTest.java 文件并将 background.png 放在同一文件夹中时,这对我有用。
但是当我将相同的代码与图像一起粘贴到 Eclipse IDE(在默认包中)时,它不会将图像设置为背景。实际上它没有找到图像,这就是原因。
我试过将它们放在同一个包中;
即使那样它也找不到图像,所以没有输出。
我尝试打开工作区 > 项目文件夹 > war > WEB-INF > classes 然后从cmd编译程序。仍然没有显示。
不知道是什么问题。任何知道任何解决方案的人都是最受欢迎的。
提前致谢。
也欢迎将背景直接设置到框架上......
我已经使用代码完成了所有这些工作,但是当它可以正常工作时,我将转向用于 GUI 的 Windows 构建器。那么,您的帮助是否也适用于 Window Builder?
最佳答案
..new ImageIcon("background.png")..
这是加载不提供反馈的图像的愚蠢(但常见)方式1。
您很可能会发现 background.png
不再是文件,而是现在的 Jar 的一部分。在这种情况下,访问它的方法是使用从 Class.getResource()
获得的 URL
。
- 加载图像的聪明方法是使用
ImageIO
,如果无法加载图像,它会抛出有用且信息丰富的异常。
关于java - 如何在 Eclipse Helios 中设置 JFrame 或 JPanel 背景图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9816403/