Java 将图像添加到标签时,JFrame上不显示图像
我已经编写了一些代码行,这些代码应该在JFrame中将图像显示为标签。这是代码Java 将图像添加到标签时,JFrame上不显示图像,java,image,swing,jlabel,imageicon,Java,Image,Swing,Jlabel,Imageicon,我已经编写了一些代码行,这些代码应该在JFrame中将图像显示为标签。这是代码 ImageIcon image = new ImageIcon("funny.jpg"); JLabel label = new JLabel(); label.setIcon(image); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(500,
ImageIcon image = new ImageIcon("funny.jpg");
JLabel label = new JLabel();
label.setIcon(image);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,500);
frame.setVisible(true);
frame.add(label);
正如在问题的注释中提示您的那样,我认为您应该注意确保文件存在于指定的位置,例如使用
getResource
除此之外,您没有将图像的观察者模式用于JLabel
。尝试将图像的ImageObserver
设置为标签
,如下所示:
ImageIcon image = new ImageIcon("funny.jpg");
JLabel label = new JLabel();
label.setIcon(image);
image.setImageObserver(label); // <-- Added this line.
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,500);
frame.setVisible(true);
frame.add(label);
ImageIcon image=新的ImageIcon(“funcy.jpg”);
JLabel标签=新的JLabel();
label.setIcon(图像);
image.setImageObserver(标签);//使frame.setVisible(true)代码>你最后一次调用-Swing是懒惰的,当它改变时不会更新UI,你需要自己去做(这是对性能的优化)。还有,什么用户15358848said@user15358848是的,无法加载图像,如何修复此问题?我也不能用ImageIO打开它。应用程序资源在部署时将成为嵌入式资源,所以现在就开始像访问一样访问它们是明智的。必须通过URL而不是文件访问。有关如何形成URL的信息,请参见。实现ImageObserver
。它将观察通过ImageIcon
@传递给它的任何图像的加载情况,如果并且仅当您调用Image.setImageObserver(标签)时,它才会观察它代码>。否则,label.setIcon(图像)代码>是不够的,因为它不会检查提供的图标是否是图像图标
。因此,还需要调用image.setImageObserver(标签)代码>。如果您按照文档上的链接进行操作,您可以清楚地看到推荐的方法是使用setImageIcon
以及setIcon
。正如我在回答中所说,组件
是一个图像观察者
。我必须承认,虽然这可能不是一个明确的声明,所以是的,你的评论应该是答案的一部分