如何使用或不使用标题栏打印JFrame?

时间:2012-01-18 15:37:28

标签: java swing printing jframe bufferedimage

我的代码基本上如下:

BufferedImage image = ......
Graphics g = image.createGraphics();
jFrame.printAll(g);

当我查看图像时,标题栏区域总是黑色......

有没有人知道如何用标题栏或没有标题栏打印jFrame?

3 个答案:

答案 0 :(得分:3)

  

有没有人知道如何用标题栏或没有标题栏打印jFrame?

仅打印内容窗格。

jFrame.getContentPane().printAll(g);

答案 1 :(得分:3)

  

当我查看图像时,标题栏区域总是黑色......

标题栏(和边框)不是由Swing绘制的,因为它们是您正在使用的平台的窗口。

如果您想获得整个帧的图像,则需要使用Robot.createScreenCapture()Screen Image课程将为您轻松完成此任务。

然后您可以尝试打印创建的BufferedImage。我不确定最好的方法,但你可以使用缓冲的图像创建一个ImageIcon。然后,您可以将图标添加到JLabel,然后打印标签。在执行此操作之前,您可能需要调用label.setSize(label.getPreferredSize())。

答案 2 :(得分:0)

尝试:yourFrame.setUndecorated(true);