Мы не будем рассматривать эти
Мы не будем рассматривать эти десять подклассов с десятками констант, чтобы не загромождать книгу мелкими подробностями. К тому же система 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);
}
});
}
}
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий