Spec-Zone .ru
спецификации, руководства, описания, API
След: 2-D Графика
Урок: Печать
Печать Содержания Пользовательского интерфейса
Домашняя страница > 2-D Графика > Печать

Печать Содержания Пользовательского интерфейса

Другая общая задача печати состоит в том, чтобы напечатать содержание окна или фрейма, или полностью, или частично. Окно может содержать следующие компоненты: панели инструментов, ползунки кнопок, текстовые метки, текстовые области с возможностью прокрутки, изображения, и другой графический контент. Все эти компоненты печатаются, используя следующие методы Java 2D™ печать API:

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

Следующее число представляет простой пользовательский интерфейс.

Печать 12 строк в окне

Код, чтобы создать этот UI располагается в примере программы 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());

    // Print the entire visible contents of a
    // java.awt.Frame.
    frame.printAll(g);

    return PAGE_EXISTS;
}

Отметьте: звонок printAll метод является единственной разницей между этим примером и примерами, чтобы напечатать текст или изображение. print(Graphics g) метод зеркально отражает java.awt.Component.paint(Graphics g) метод используется для экранного рендеринга. Используйте print() метод, а не paint() метод как Components class, возможно, переопределил print() метод, чтобы обработать случай печати по-другому.

printAll(Graphics g)метод печатает компонент и все его субкомпоненты. Этот метод обычно используется, чтобы напечатать объект, такой как полное окно, а не единственный компонент.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Работа со Службами печати и Атрибутами
Следующая страница: Печать Поддержки в Компонентах Swing