Java 将背景图像放入JFrame
好了,现在我已经把框架装饰好了。。(谢谢你们)我正试着给相框放一个背景图像。但当我运行它时,它显示的只是一个空白框。Java 将背景图像放入JFrame,java,swing,jframe,Java,Swing,Jframe,好了,现在我已经把框架装饰好了。。(谢谢你们)我正试着给相框放一个背景图像。但当我运行它时,它显示的只是一个空白框。 怎么了?如何更正?您可能没有在正确的位置查找图像。如果要将图像作为文件查找(当前正在尝试查找),则需要相对于用户目录进行查找,用户目录可通过System.out.println(System.getProperty(“user.dir”)找到。如果要将其作为资源查找,则需要相对于类文件位置查找它。所有这些都在这个网站上被无限地讨论和重复。请再搜索一些。 请考虑以下几点… 1.在s
怎么了?如何更正?您可能没有在正确的位置查找图像。如果要将图像作为文件查找(当前正在尝试查找),则需要相对于用户目录进行查找,用户目录可通过
System.out.println(System.getProperty(“user.dir”)
找到。如果要将其作为资源查找,则需要相对于类文件位置查找它。所有这些都在这个网站上被无限地讨论和重复。请再搜索一些。 请考虑以下几点…
1.在setVisible(true)之前添加JLabel、background。实际上,将setVisible作为构造函数中的最后一行。
2.然后尝试以
getClass().getResource(imgPath)
设置图像可能是因为图像图标在路径中找不到“fw.jpg”。这个“fw.jpg”文件位于何处?到部署时,这些资源很可能会成为一个文件。在这种情况下,必须通过
URL
而不是File
访问资源。有关形成URL
的方法,请参阅标签的。
import java.awt.*;
import javax.swing.*;
import java.awt.Color;
import javax.swing.JPanel;
public class FirstFrame extends JFrame {
// FirstFrame properties
public FirstFrame() {
setTitle("Stacker");
setLayout(new GridBagLayout());
setSize(380, 650);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setUndecorated(true);
setVisible(true);
setResizable(true);
JLabel background = new JLabel(new ImageIcon("fw.jpg"));
background.setLayout(new BorderLayout());
add(background);
}
public static void main(String[] args) {
new FirstFrame();
}
}