【发布时间】:2012-07-07 13:24:58
【问题描述】:
如何将JPanel 存储为 jpeg 图像我可以搜索的解决方案会拍摄显示的快照,这不会捕获JPanel 的所有内容作为一部分它是隐藏的。有没有办法在 jpeg 中获取整个图像。
这里提供的这个解决方案根本无法正常工作solution
我目前用来拍摄 JPanel 快照的代码
if (panelx == null) {
jButton3.setText("Generate Diagram");
} else {
jButton3.setText("Generate Diagram");
jTextPane1
.setText(Messages.getString("statement2")); //$NON-NLS-1$
JFrame win = (JFrame) SwingUtilities
.getWindowAncestor(panelx.panelx);
Dimension size = win.getSize();
// BufferedImage image = new BufferedImage(size.width, size.height,
// BufferedImage.TYPE_INT_RGB);
BufferedImage image = (BufferedImage) win.createImage(size.width,
size.height);
Graphics g = image.getGraphics();
win.paint(g);
g.dispose();
try {
ImageIO.write(
image,
Messages.getString("Statement38"), new File(Messages.getString("statement5"))); //$NON-NLS-1$ //$NON-NLS-2$
} catch (IOException e) {
System.out.println("Image cannot be created");
}
【问题讨论】:
-
来自整个 JPanel 的图形或仅来自 JScrollPane 的可见 JViewport 的图形
-
@mKorbel 来自整个 JPanel。为了查看整个图像,我们必须滚动 JPanel。我想要一个解决方案,我们可以将此图像存储为 jpeg 不需要滚动并且整个输出都在那里。
-
到目前为止您尝试了什么?或者换句话说:展示一个展示您的问题的 SSCCE。
-
@kleopatra 让我告诉你我正在使用的方法
-
这不是 SSCCE(Google 是你的朋友 :-)