1

可能重复:
将 Swing 与帧缓冲区一起使用

我整天都在寻找针对我的问题的各个方向的解决方案。我正在研究在 Kobo Touch 上运行的 Java,我想使用 Swing 来呈现组件。问题是,如果我只是调用paint() 或其朋友,有问题的组件只会呈现自己。如果我使用 JFrame 来打包()组件,那么它可以在桌面上运行,但是当我将它移动到 Kobo 时它会失败,因为那里的 Java 环境是无头的。

在无头环境中,将带有子项的 JPanel 渲染为 BufferedImage 或 Graphics2D 的最简单方法是什么?

4

1 回答 1

2

看一下这个:

我可以从 JPanel 创建 BufferedImage 而不在 JFrame 中呈现吗?

顺便说一句,为什么它是无头的?Kobo Touch 确实有显示器...

编辑:正如原始海报所发现的那样,

getLayout().layoutContainer(this); 

如果没有使用框架,是强制布局管理器对子项进行布局的一种方法,因此 frame.pack() 不会触发布局管理器。

于 2012-12-16T00:34:18.530 回答