【发布时间】:2021-09-24 12:05:55
【问题描述】:
这对我来说是最简单的代码.. 但无法从我的桌面显示我上传的图片,而是当我用鼠标调整 JFrame 窗口的大小时,它会显示出来。
这种情况发生在 Netbeans 和 Eclipse 中...... 你能解释一下这背后的原因吗??? 提前谢谢..
JFrame f=new JFrame("My Frame");
f.setSize(1500,1500);
f.setVisible(true);
// f.setLayout(new FlowLayout());
JLabel l=new JLabel("A pic in next Label");
f.add(l);
JLabel lp=new JLabel();
lp.setIcon(new ImageIcon("aaa.jpg"));
f.add(lp);
【问题讨论】:
-
您在添加标签之前显示框架。因此,只有当您调整框架的大小时,它才会重新渲染并看到图像。您应该首先添加标签,然后调用 .pack() 和 .visible()。希望对你有帮助
-
添加 JLabel 组件后,您必须设置 setSize 和 setVisible。
-
1) 为了尽快获得更好的帮助,edit 添加minimal reproducible example 或Short, Self Contained, Correct Example。 2) 例如,获取图像的一种方法是热链接到在this Q&A 中看到的图像。例如。 this answer 中的代码热链接到嵌入在this question 中的图像。
-
顺便说一句。奇怪的是,这个
// f.setLayout(new FlowLayout());被注释掉了,并且代码试图将 2 个标签(没有指定约束)添加到BorderLayout(JFrame的内容窗格的默认布局)。只有一个会显示,但设置FlowLayout将是一种解决方法。 .. 在我的示例中,我将它从两个组件减少到一个组件,这真是太幸运了——这也可以。
标签: java swing user-interface jframe