【发布时间】:2011-09-29 14:47:55
【问题描述】:
我有一个包含 JPanel 子级的 JFrame,其中显示了以这种方式声明的图像。
BufferedImage image = ImageIO.read(filename);
程序正确显示图像。但唯一的问题是,它需要调整框架的大小才能显示图像。
有没有一种方法可以在框架出现后显示图像?
【问题讨论】:
-
可能是因为您在显示框架后添加图像。作为解决方案,您应该首先添加图像然后使框架可见,或者您也可以在添加图像后调用 repaint()。
-
@Cyril Horad,如果您提供更多示例代码会有所帮助。
-
您能否将评论作为清除线程的答案。谢谢。我会接受答案。
-
也许,您可以尝试在您自己的扩展 JPanel 的类中再次实现 paint 方法,如下所示:pastebin.com/3ZwVvr2v 并确保在创建 JPanel 时调用 super.paintComponent(g) 以便JFrame 是用图像绘制的。
-
@Cyril Horad,你永远不应该显式调用
paint(...)或覆盖它。
标签: java swing jframe bufferedimage javax.imageio