gpt4 book ai didi

java - 图像不会出现在 JLabel 上。尝试了多种解决方案

转载 作者:行者123 更新时间:2023-12-02 01:07:48 24 4
gpt4 key购买 nike

我正在尝试将图像添加到 JLabel 以放在 JFrame 上,经过数小时的研究,它仍然只加载 JFrame 底部有 2 个按钮。有问题的图像与类位于同一目录中,除了一个文件夹之外(我已在同一文件夹中尝试过但无济于事)。我对编码还很陌生,所以请耐心等待。

这是除按钮的操作监听器之外的大部分代码(该类也扩展了 JFrame)

JPanel jp = new JPanel();
JPanel jb = new JPanel(new GridLayout(1, 2, 20, 20));
JLabel jl = new JLabel();
JButton end = new JButton("End");
JButton next = new JButton("Next");

jl.setIcon(new ImageIcon("notes/daWay.jpg"));

setSize(900, 700);
jp.add(jl, new FlowLayout());
add(jp);
jb.add(end);
jb.add(next);
add(jb, BorderLayout.PAGE_END);

setVisible(true);

我尝试过:设置标签边界,检查 ImageIcon 是否为空(不是),使 ImageIcon 成为自己的变量,然后将变量添加到 Jlabel,JFrame 的 getContentPane,使用 BufferedImage 和 ImageIO 以及 try 和 catch (带 url 和不带 url)、getClass、getClassLoader、getResource、标签上的 imageUpdate、带 FlowLayout 和不带 FlowLayout、jpegs 和 png、清除除一个标签之外的框架以及许多其他内容。即使在运行图像时扩展窗口也不会出现,请帮忙!

(将来我也想清除标签并添加新图像,我还没有到那一步,因为我无法克服这个错误,但如果上下文有助于解决问题,那么上下文)

最佳答案

ImageIcon constructor you're using采用文件路径作为参数。

为了使您的代码正常工作,您必须传递绝对文件路径,因为相对文件路径是根据当前目录解析的,而不是基于包含文件路径的类。

当前目录是执行java命令的目录。

您想要做的是使用类加载器来加载图像。这样您就可以将图像嵌入到构建应用程序时创建的 jar 文件中。

所以你应该使用

new ImageIcon(YourClass.class.getResource("notes/daWay.jpg"))

这将从位于 YourClass 包的子包 notes 中的 daWay.jpg 资源加载图像。

关于java - 图像不会出现在 JLabel 上。尝试了多种解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59799166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com