Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface Painter<T>
Делегат рисования. Интерфейс Живописца определяет точно один метод, paint
. Это используется в ситуациях, где разработчик может изменить подпрограмму рисования компонента, не имея необходимость обращаться к разделению на подклассы компонента. Это также в общем полезно, делая любую форму рисования делегации.
Painter
s являются просто инкапсуляциями Java2D, кодируют и делают довольно тривиальным, чтобы снова использовать существующий Painter
s или объединить их вместе. Реализации этого интерфейса также тривиальны, чтобы записать, так, что если невозможно найти a Painter
это делает то, в чем Вы нуждаетесь, можно записать один с минимальным усилием. Запись a Painter
требует знания Java2D.
A Painter
может быть создан с параметром типа. Этот тип будет ожидаться в paint
метод. Например, можно хотеть записать a Painter
тот единственные работы с подклассами Component
. В этом случае, когда Painter
объявляется, можно объявить, что это требует a Component
, разрешение метода краски быть безопасным с точки зрения типов. Исключая:
Painter<Component> p = new Painter<Component>() {
public void paint(Graphics2D g, Component c, int width, int height) {
g.setColor(c.getBackground());
//and so forth
}
}
Этот интерфейс не делает гарантий threadsafety.
Модификатор и Тип | Метод и Описание |
---|---|
void |
paint(Graphics2D g, T object, int width, int height)
Представляет к данному
Graphics2D объект. |
void paint(Graphics2D g, T object, int width, int height)
Представляет к данному Graphics2D
объект. Реализации этого метода могут изменить состояние на Graphics2D
, и не обязаны восстанавливать то состояние после завершения. В большинстве случаев рекомендуется, чтобы вызывающая сторона передала в объекте графики царапины. Graphics2D
никогда не должен быть нуль.
Государство на графическом объекте можно соблюдать paint
метод, но, возможно, не. Например, установка подсказки рендеринга сглаживания на графике может или не может уважаться Painter
реализация.
Предоставленный объектный параметр действует как дополнительный параметр конфигурации. Например, это могло иметь тип Component
. A Painter
это ожидало, что могло тогда состояние чтения от этого Component
и используйте состояние для рисования. Например, реализация может считать backgroundColor и использование это.
Обычно, чтобы улучшить возможность многократного использования, самую стандартную Painter
s игнорируют этот параметр. Они могут таким образом быть снова использованы в любом контексте. object
может быть нуль. Реализации не должны бросить NullPointerException, если объектный параметр является нулем.
Наконец, width
и height
параметры определяют width и height что Painter
должен нарисовать в. Более определенно указанный width и height сообщают живописцу, которого это должно нарисовать полностью в пределах этого width и height. Любой определенный пристегивается g
param далее ограничит область.
Например, предположите, что у меня есть a Painter
реализация, которая тянет градиент. Градиент идет от белого до черного. Это "простирается", чтобы заполнить нарисованную область. Таким образом, если я использую это Painter
чтобы нарисовать 500 x 500 областями, крайне левое было бы черным, далекое право будет белым, и гладкий градиент был бы нарисован между. Я мог тогда, без модификации, снова использовать Painter
нарисовать область, которая является 20x20 в размере. Эта область также была бы черной слева, белой справа, и гладкий градиент, нарисованный между.
g
- Graphics2D, чтобы представить к. Это не должно быть нулем.object
- дополнительный параметр конфигурации. Это может быть нулем.width
- width области, чтобы нарисовать.height
- height области, чтобы нарисовать.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92