文档

Java™教程
隐藏目录
打印用户界面的内容
教程:2D图形
课程:打印

打印用户界面内容

另一个常见的打印任务是打印窗口或框架的内容,可以是全部或部分。窗口可以包含以下组件:工具栏、按钮滑块、文本标签、可滚动的文本区域、图像和其他图形内容。使用Java 2D打印API的以下方法打印所有这些组件:

java.awt.Component.print(Graphics g);
java.awt.Component.printAll(Graphics g);

下图表示一个简单的用户界面。

在窗口中打印12行

创建此用户界面的代码位于示例程序PrintUIWindow.java中。

要打印此窗口,请修改之前打印文本或图像的示例中的代码。修改后的代码如下:

public int print(Graphics g, PageFormat pf, int page)
    throws PrinterException {
    if (page > 0) {
        return NO_SUCH_PAGE;
    }

    Graphics2D g2d = (Graphics2D)g;
    g2d.translate(pf.getImageableX(), pf.getImageableY());

    // 打印java.awt.Frame的整个可见内容。
    frame.printAll(g);

    return PAGE_EXISTS;
}

注意: printAll方法的调用是此示例与打印文本或图像示例之间的唯一区别。print(Graphics g)方法类似于用于屏幕渲染的java.awt.Component.paint(Graphics g)方法。使用print()方法而不是paint()方法,因为Components类可能已覆盖print()方法以处理打印情况。


printAll(Graphics g)方法打印组件及其所有子组件。通常使用此方法来打印对象,例如完整的窗口,而不是单个组件。


上一页: 使用打印服务和属性
下一页: Swing组件中的打印支持