Иллюстрированный самоучитель по Java



              

Печать в Java - часть 2


Мы не будем рассматривать эти десять подклассов с десятками констант, чтобы не загромождать книгу мелкими подробностями. К тому же система Java 2D предлагает более удобный набор классов для печати, который мы рассмотрим в следующем пункте.

После того как "печатный контекст" — объект pg класса Graphics — определен, МОЖНО вызывать МеТОД print(pg) ИЛИ printAll(pg) Класса Component. Этот метод устанавливает связь с принтером по умолчанию и вызывает метод paint (pg). На печать выводится все то, что задано этим методом.

Например, чтобы распечатать текстовый файл, надо в процессе ввода разбить его текст на строки и в методе paint (pg) вывести строки методом pg.drawstring() так же, как мы выводили их на экран в

главе 9.

При этом следует учесть, что в "печатном контексте" нет шрифта по умолчанию, всегда надо устанавливать шрифт методом pg.setFont ().

После выполнения всех методов print о применяется метод pg. dispose(), вызывающий прогон страницы, и метод pj .endо, заканчивающий печать.

В листинге 18.7 приведен простой пример печати текста и окружности, заданных в методе paint (>. Этот метод работает два раза: первый раз вычерчивая текст и окружность на экране, второй раз, точно так же, на листе бумаги, вставленной в принтер. Все методы печати собраны в один метод

simplePrint().

Листинг 18.7.

Печать средствами AWT

import java.awt.*; 

import j ava.awt.event.*;

class PrintTest extends Frame{ 

PrintTest(String s){ 

super(s);

setSize(400, 400); 

setVisible(true); 

}

public void simplePrint{){ 

PrintJob pj =

getToolkitO.getPrintJob(this, "JobTitle", null); 

if (pj != null){

Graphics pg = pj.getGraphics(); 

if (pg != null){ 

print(pg); 

pg.dispose();

}else System.err.println("Graphics's null"); 

pj.end();

}else System.err.println("Job's null"); 

public void paint(Graphics g){

g.setFonttnew Font("Serif", Font.ITALIC, 30)); 

g.setColor(Color.black); 

g.drawArcdOO, 100, 200, 200, 0, 360); 

g.drawstring("Страница 1", 100, 100); 

public static void main(String[] args){

PrintTest pt = new PrintTest(" Простой гфимер печати");

pt.simplePrint();

pt.addWindowListener(new WindowAdpter(){

public void windowClosing(WindowEvent ev){

System.exit(0); 

}

}); 

}




Содержание  Назад  Вперед