我在实践中遇到这个问题,框架没有显示我在文件夹图片中的图像,有人可以告诉我为什么?我添加项目的层次结构
package frame;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Frame {
Frame() {
final JFrame login = new JFrame();
login.setTitle("Title");
login.setLayout(null);
login.add(new JLabel(new ImageIcon("Images/images.png")));
login.setVisible(true);
login.setSize(500, 400);
login.setLocationRelativeTo(null);
}
public static void main(String[] args) {
new Frame();
}
}
答案 0 :(得分:1)
要从项目中获取资源,请使用URL
而不是String
路径。例如:
URL resource = Frame.class.getResource("/Images/images.png");
ImageIcon icon = new ImageIcon(resource);
JLabel lbl = new JLabel(icon);
另请阅读that。
也不要使用null LayoutManager
,在这种情况下,您需要在setBounds()
方法的帮助下指定组件的边界。
答案 1 :(得分:1)
如果你没有合理的理由,请避免使用setLayout(null)。删除以下代码。图像将会显示。
如果仍然需要使用空布局,则必须设置组件的宽度和高度及其x和y位置。
login.setLayout(null);
答案 2 :(得分:0)
不要将包用于资源。而是创建一个名为“images”的非源文件夹,并将其移动到那里。
之后,使用该路径“images / images.png”