Swing 组件中的打印支持

原文: https://docs.oracle.com/javase/tutorial/2d/printing/swing.html

上一节中显示的 PrintUIWindow.java 示例表明打印输出与您在屏幕上看到的完全相同。这种外观似乎很合理。但是,如果窗口是可滚动的,则当前滚动出视图的内容不包括在打印输出中。这会在打印机上创建转储效果。当打印诸如 Swing 表或文本组件之类的大型组件时,这成为一个特殊问题。组件可能包含许多行,这些行不能在屏幕上完全显示。在这种情况下,以与屏幕显示一致的方式打印组件显示的内容。

要解决此问题,Swing 表和所有文本组件都可以识别打印。以下方法直接提供 Java 2D 打印的使用:

这些方法为其内容提供了完整的打印实现。应用程序不需要直接创建PrinterJob对象并实现Printable接口。调用这些方法会显示一个打印对话框,并根据用户的选择打印组件的数据。还有其他方法可以提供更多选择。