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