Читаем Java 7 полностью

Таблица 9.2. Методы визуализации и их значения
МетодЗначение
KEY ANTIALIASINGРазмывание крайних пикселов линий для гладкости изображения; три значения, задаваемые константами: VALUE ANTIALIAS DEFAULT, VALUE ANTIALIAS ON, VALUE ANTIALIAS OFF
KEY TEXT ANTIALIASINGТо же для текста. Константы: VALUE TEXT ANTIALIASING DEFAULT, VALUE TEXT ANTIALIASING ON, VALUE TEXT ANTIALIASING OFF. Для LCD-мониторов константы: value text antialias gasp,VALUE TEXT ANTIALIAS LCD HRGB,VALUE TEXT ANTIALIAS LCD HBGR,VALUE TEXT ANTIALIAS LCD VRGB,VALUE TEXT ANTIALIAS LCD VBGR
KEY RENDERINGТри типа визуализации. Константы: VALUE RENDER SPEED, VALUE RENDER QUALITY, VALUE RENDER DEFAULT
KEY COLOR RENDERINGТо же для цвета. Константы: VALUE COLOR RENDER SPEED, VALUE COLOR RENDER QUALITY, VALUE COLOR RENDER DEFAULT
KEY ALPHA INTERPOLATIONПлавное сопряжение линий. Константы:VALUE ALPHA INTERPOLATION SPEED, VALUE ALPHA INTERPOLATION QUALITY, VALUE ALPHA INTERPOLATION DEFAULT
KEY INTERPOLATIONСпособы сопряжения. Константы: VALUE INTERPOLATION BILINEAR, VALUE INTERPOLATION BICUBIC,VALUE INTERPOLATION NEAREST NEIGHBOR
KEY DITHERINGЗамена близких цветов. Константы: VALUE DITHER ENABLE, VALUE DITHER DISABLE, VALUE DITHER DEFAULT
KEY ALPHA INTERPOLATIONСпособ альфа-интерполяции. Константы:VALUE ALPHA INTERPOLATION DEFAULT, VALUE ALPHA INTERPOLATION QUALITY, VALUE ALPHA INTERPOLATION SPEED
KEY STROKE CONTROLСпособ рисования. Константы: VALUE STROKE DEFAULT, VALUE STROKE NORMALIZE, VALUE STROKE PURE
Не все графические системы обеспечивают выполнение этих методов, поэтому задание указанных атрибутов не означает, что определяемые ими методы будут применяться на самом деле.Вот как может выглядеть начало метода paint () с указанием методов улучшения визуализации:

public void paint(Graphics gr){

Graphics2D g = (Graphics2D)gr;

g.setRenderingHint(RenderingHints.KEY ANTIALIASING,

RenderingHints.VALUE_ANTIALIAS_ON); g.setRenderingHint(RenderingHints.KEY RENDERING,

RenderingHints.VALUE_RENDER_QUALITY);

// Продолжение метода

Для того чтобы как можно лучше связать визуализацию с настройками дисплея, определено свойство "awt.font.desktophints", хранящее таблицу типа Map с методами улучшения визуализации, имеющимися в настройках дисплея. Воспользоваться этим свойством можно так:

public void paint(Graphics gr){

Graphics2D g = (Graphics2D)gr;

Toolkit tk = Toolkit.getDefaultToolkit();

Map map = (Map)(tk.getDesktopProperty("awt.font.desktophints")); if (map != null) g.addRenderingHints(map);

// Продолжение метода

}

Упражнение

5. Перепишите предыдущие упражнения средствами Java 2D.

Заключение

В этой главе мы, разумеется, не смогли подробно разобрать все возможности Java 2D. Мы не коснулись моделей задания цвета и смешивания цветов, печати графики и текста, динамической загрузки шрифтов, изменения области рисования. В главе 20 будут рассмотрены средства Java 2D для работы с изображениями, в главе 23 — средства печати.

В документации Java SE, в каталоге docs/technotes/guides/2d/spec, есть руководство Programmer's Guide to the Java 2D API с обзором всех возможностей Java 2D. Там помещены ссылки на руководства и пособия по Java 2D. В каталоге demo/jfc/Java2D/ приведена демонстрационная программа и исходные тексты программ, использующих Java 2D.

Вопросы для самопроверки

1. Что такое цвет в библиотеке AWT?

2. Что такое шрифт в библиотеке AWT?

3. Что такое графический контекст?

4. Как нарисовать треугольник?

5. Как нарисовать окружность?

6. Как преобразовать чертеж: повернуть его, уменьшить или увеличить?

7. Можно ли писать текст сверху вниз или справа налево?

Перейти на страницу:

Все книги серии В подлиннике

Java 7
Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др. Дано подробное изложение последней версии сервлетов, технологии JSP и библиотек тегов JSTL. Около двухсот законченных программ иллюстрируют рассмотренные приемы программирования. Приведена подробная справочная информация о классах и методах Core Java API.

Ильдар Шаукатович Хабибуллин

Программирование, программы, базы данных

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных