繁体   English   中英

如何将可滚动的JPanel保存为jpeg图像(而不是快照)

[英]How to save a scrollable JPanel as a jpeg image (not as a snapshot)

我可能搜索的解决方案如何将JPanel存储为jpeg图像,因此将快照显示的快照,这无法捕获JPanel所有内容,因为它的一部分被隐藏了。 有什么办法可以将整个图像转换为jpeg

这里可用的解决方案在所有解决方案上都无法正常工作

我当前用来拍摄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");
            }

您没有解释为什么该示例不起作用。

为什么使用窗口而不是面板? 如果使用示例答案,则应参考滚动窗格中的面板。

您正在整个JFrame上调用画图,而不仅仅是在您感兴趣的面板上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM