请教:有没有办法把JScrollPane或者JInternalFrame的画面抓到Image或者ImageIcon里面?

www203 2005-11-08 09:20:09
因为我想把他保存成图片
或者把画面的内容打印到PDF上面
...全文
159 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hfs1978 2005-11-11
  • 打赏
  • 举报
回复
学习
www203 2005-11-08
  • 打赏
  • 举报
回复
怎么UP的人都没一个
www203 2005-11-08
  • 打赏
  • 举报
回复
title.index=业务管理系统 1.0
www203 2005-11-08
  • 打赏
  • 举报
回复
加油
www203 2005-11-08
  • 打赏
  • 举报
回复
非常感谢
测试成功了
gtlang78 2005-11-08
  • 打赏
  • 举报
回复
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.*;

public class T {
public static void main(String[] args) {
JDesktopPane desktop = new JDesktopPane();
final JInternalFrame internalframe = new JInternalFrame("Test", true, false, true, true);
internalframe.getContentPane().add(new JLabel("Hello World!", JLabel.CENTER));
internalframe.setSize(150, 100);
internalframe.setVisible(true);
desktop.add(internalframe);

JButton imgBtn = new JButton(new AbstractAction() {
{ putValue(NAME, "SaveImage"); }

public void actionPerformed(ActionEvent e) {
BufferedImage img = new BufferedImage(
internalframe.getWidth(), internalframe.getHeight(),
BufferedImage.TYPE_INT_RGB);
Graphics g = img.getGraphics();
internalframe.paint(g);
g.dispose();

try {
ImageIO.write(img, "png", new File("test.png"));
} catch (IOException e1) {
e1.printStackTrace();
}
}
});

JFrame f = new JFrame();
f.getContentPane().add(desktop, BorderLayout.CENTER);
f.getContentPane().add(imgBtn, BorderLayout.SOUTH);
f.setSize(300, 300);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧