|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Другая общая задача печати состоит в том, чтобы напечатать содержание окна или фрейма, или полностью, или частично. Окно может содержать следующие компоненты: панели инструментов, ползунки кнопок, текстовые метки, текстовые области с возможностью прокрутки, изображения, и другой графический контент. Все эти компоненты печатаются, используя следующие методы Java 2D™ печать API:
java.awt.Component.print(Graphics g); java.awt.Component.printAll(Graphics g);
Следующее число представляет простой пользовательский интерфейс.

Код, чтобы создать этот 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)метод печатает компонент и все его субкомпоненты. Этот метод обычно используется, чтобы напечатать объект, такой как полное окно, а не единственный компонент.