Swing 组件中的打印支持

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

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

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