Класс RepaintManager

public class RepaintManager
extends Object

Этот класс управляет запросами на перерисовку, позволяя минимизировать количество перерисовок, например, объединяя несколько запросов в одну перерисовку для элементов дерева компонента.

Начиная с версии 1.6 RepaintManager обрабатывает запросы на перерисовку для верхних компонентов Swing (JApplet, JWindow, JFrame и JDialog). Любые вызовы repaint для одного из них вызовут соответствующий метод addDirtyRegion.

Since:
1.2

Конструкторы

Конструктор Описание
RepaintManager()

Создаёт новый экземпляр RepaintManager.

Методы

Модификатор и тип Метод Описание
void addDirtyRegion​(Applet applet, int x, int y, int w, int h)

Устарело.

API апплетов устарело.

void addDirtyRegion​(Window window, int x, int y, int w, int h)

Добавляет window в список Component, которые нужно перерисовать.

void addDirtyRegion​(JComponent c, int x, int y, int w, int h)

Добавляет компонент в список компонентов, которые должны быть обновлены.

void addInvalidComponent​(JComponent invalidComponent)

Помечает компонент как требующий изменения размеров и помещает в очередь выполнение для потока обработки событий, которое будет проверять компонент и его предков, удовлетворяющих условию isValidateRoot().

static RepaintManager currentManager​(Component c)

Возвращает RepaintManager для вызывающего потока, заданного компонентом.

static RepaintManager currentManager​(JComponent c)

Возвращает RepaintManager для вызывающего потока, заданного JComponent.

Rectangle getDirtyRegion​(JComponent aComponent)

Возвращает текущую область изменения для компонента.

Dimension getDoubleBufferMaximumSize()

Возвращает максимальный размер буфера двойного буферизации.

Image getOffscreenBuffer​(Component c, int proposedWidth, int proposedHeight)

Возвращает буфер вне экрана, который следует использовать в качестве буфера двойного буферизации с компонентом c.

Image getVolatileOffscreenBuffer​(Component c, int proposedWidth, int proposedHeight)

Возвращает летучий буфер вне экрана, который следует использовать в качестве буфера двойного буферизации с указанным компонентом c.

boolean isCompletelyDirty​(JComponent aComponent)

Удобный метод, возвращающий true, если aComponent будет полностью нарисован при следующем вызове paintDirtyRegions().

boolean isDoubleBufferingEnabled()

Возвращает true, если этот RepaintManager использует двойной буферизацию.

void markCompletelyClean​(JComponent aComponent)

Помечает компонент как полностью чистый.

void markCompletelyDirty​(JComponent aComponent)

Помечает компонент как полностью грязный.

void paintDirtyRegions()

Перерисовывает все компоненты, помеченные как грязные.

void removeInvalidComponent​(JComponent component)

Удаляет компонент из списка невалидных компонентов.

static void setCurrentManager​(RepaintManager aRepaintManager)

Устанавливает RepaintManager, который должен использоваться для вызывающего потока.

void setDoubleBufferingEnabled​(boolean aFlag)

Включает или отключает двойную буферизацию в этом RepaintManager.

void setDoubleBufferMaximumSize​(Dimension d)

Устанавливает максимальный размер буфера двойного буферизации.

String toString()

Возвращает строку, отображающую и идентифицирующую свойства этого объекта.

void validateInvalidComponents()

Проверяет все компоненты, помеченные как невалидные.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Конструкторы

RepaintManager

public RepaintManager()

Создать новый экземпляр RepaintManager. Вы редко вызываете этот конструктор напрямую. Чтобы получить стандартный RepaintManager, используйте RepaintManager.currentManager(JComponent) (обычно "this").

Методы

currentManager

public static RepaintManager currentManager(Component c)

Возвращает RepaintManager для потока вызова, заданного компонентом.

Параметры:
c - a Component -- не используется в стандартной реализации, но может использоваться переопределённой версией для возврата другого RepaintManager в зависимости от компонента
Возвращает:
объект RepaintManager

currentManager

public static RepaintManager currentManager(JComponent c)

Возвращает RepaintManager для потока вызова, заданного JComponent.

Примечание: Этот метод существует для обеспечения обратной двоичной совместимости с предыдущими версиями библиотеки Swing. Он просто возвращает результат, возвращаемый currentManager(Component).

Параметры:
c - a JComponent -- не используется
Возвращает:
объект RepaintManager

setCurrentManager

public static void setCurrentManager(RepaintManager aRepaintManager)

Установить RepaintManager, который должен использоваться для потока вызова. aRepaintManager станет текущим RepaintManager для группы потоков вызывающего потока.

Параметры:
aRepaintManager - объект RepaintManager для использования

addInvalidComponent

public void addInvalidComponent(JComponent invalidComponent)

Пометить компонент как нуждающийся в макете и поставить в очередь выполнимый элемент для потока обработки событий, который будет проверять родительский компонент, удовлетворяющий условиям isValidateRoot() в первую очередь.

Параметры:
invalidComponent - компонент
См. также:
JComponent.isValidateRoot(), removeInvalidComponent(javax.swing.JComponent)

removeInvalidComponent

public void removeInvalidComponent(JComponent component)

Удалить компонент из списка невалидных компонентов.

Параметры:
component - компонент
См. также:
addInvalidComponent(javax.swing.JComponent)

addDirtyRegion

public void addDirtyRegion(JComponent c,
                           int x,
                           int y,
                           int w,
                           int h)

Добавить компонент в список компонентов, которые необходимо обновить. Если у c уже есть область грязи, прямоугольник (x,y,w,h) будет объединён с областью, которая должна быть перерисована.

Параметры:
c - Компонент для перерисовки, null приводит к отсутствию действия.
x - Координата X области для перерисовки
y - Координата Y области для перерисовки
w - Ширина области для перерисовки
h - Высота области для перерисовки
См. также:
JComponent.repaint(long, int, int, int, int)

addDirtyRegion

public void addDirtyRegion(Window window,
                           int x,
                           int y,
                           int w,
                           int h)

Добавляет window в список Componentов, которые нуждаются в перерисовке.

Параметры:
window - Окно для перерисовки, null приводит к отсутствию действия.
x - Координата X области для перерисовки
y - Координата Y области для перерисовки
w - Ширина области для перерисовки
h - Высота области для перерисовки
Since:
1.6
См. также:
JFrame.repaint(long, int, int, int, int), JWindow.repaint(long, int, int, int, int), JDialog.repaint(long, int, int, int, int)

addDirtyRegion

@Deprecated(since="9")
public void addDirtyRegion(Applet applet,
                           int x,
                           int y,
                           int w,
                           int h)
Устаревший.
API апплетов устарел. См. документацию пакета java.applet для получения дополнительной информации.

Добавляет applet в список Componentов, которые нуждаются в перерисовке.

Параметры:
applet - Аплет для перерисовки, null приводит к отсутствию действия.
x - Координата X области для перерисовки
y - Координата Y области для перерисовки
w - Ширина области для перерисовки
h - Высота области для перерисовки
Since:
1.6
См. также:
JApplet.repaint(long, int, int, int, int)

getDirtyRegion

public Rectangle getDirtyRegion(JComponent aComponent)

Возвращает текущую область грязи для компонента. Возвращает пустой прямоугольник, если компонент не находится в состоянии грязи.

Параметры:
aComponent - компонент
Возвращает:
область

markCompletelyDirty

public void markCompletelyDirty(JComponent aComponent)

Пометить компонент полностью грязным. aComponent будет полностью перерисован во время следующего вызова paintDirtyRegions().

Параметры:
aComponent - компонент

markCompletelyClean

public void markCompletelyClean(JComponent aComponent)

Пометить компонент полностью чистым. aComponent не будет перерисован во время следующего вызова paintDirtyRegions().

Параметры:
aComponent - компонент

isCompletelyDirty

public boolean isCompletelyDirty(JComponent aComponent)

Удобный метод, возвращающий true, если aComponent будет полностью перерисован во время следующего вызова paintDirtyRegions(). Если вычисление областей грязи дорогостояще для вашего компонента, используйте этот метод и избегайте вычисления области грязи, если он вернёт true.

Параметры:
aComponent - компонент
Возвращает:
true если aComponent будет полностью перерисован во время следующего вызова paintDirtyRegions().

validateInvalidComponents

public void validateInvalidComponents()

Проверить все компоненты, которые были помечены как недействительные.

См. также:
addInvalidComponent(javax.swing.JComponent)

paintDirtyRegions

public void paintDirtyRegions()

Перерисовать все компоненты, которые были помечены как грязные.

См. также:
addDirtyRegion(javax.swing.JComponent, int, int, int, int)

toString

public String toString()

Возвращает строку, отображающую и идентифицирующую свойства этого объекта.

Переопределяет:
toString в классе Object
Возвращает:
строковое представление этого объекта

getOffscreenBuffer

public Image getOffscreenBuffer(Component c,
                                int proposedWidth,
                                int proposedHeight)

Возвращает буфер вне экрана, который должен использоваться как буфер двойной буферизации с компонентом c. По умолчанию существует буфер двойной буферизации на каждый RepaintManager. Буфер может быть меньше, чем (proposedWidth,proposedHeight). Это происходит, когда максимальный размер буфера двойной буферизации был установлен для принимающего менеджера перерисовки.

Параметры:
c - компонент
proposedWidth - ширина буфера
proposedHeight - высота буфера
Возвращает:
изображение

getVolatileOffscreenBuffer

public Image getVolatileOffscreenBuffer(Component c,
                                        int proposedWidth,
                                        int proposedHeight)

Возвращает буфер перерисовки вне экрана, который должен использоваться как буфер двойной буферизации со специфицированным компонентом c. Возвращаемое изображение будет экземпляром VolatileImage или null, если объект VolatileImage не смог быть создан. Этот буфер может быть меньше, чем (proposedWidth,proposedHeight). Это происходит, когда максимальный размер буфера двойной буферизации был установлен для этого менеджера перерисовки.

Параметры:
c - компонент
proposedWidth - ширина буфера
proposedHeight - высота буфера
Возвращает:
переменное изображение
Since:
1.4
См. также:
VolatileImage

setDoubleBufferMaximumSize

public void setDoubleBufferMaximumSize(Dimension d)

Установить максимальный размер буфера двойной буферизации.

Параметры:
d - размер

getDoubleBufferMaximumSize

public Dimension getDoubleBufferMaximumSize()

Возвращает максимальный размер буфера двойной буферизации.

Возвращает:
объект Dimension, представляющий максимальный размер

setDoubleBufferingEnabled

public void setDoubleBufferingEnabled(boolean aFlag)

Включает или отключает двойную буферизацию в этом RepaintManager. ВНИМАНИЕ: Значение по умолчанию для этого свойства установлено для оптимальной производительности перерисовки на данной платформе, и не рекомендуется программно изменять это свойство напрямую.

Параметры:
aFlag - true для активации двойной буферизации
См. также:
isDoubleBufferingEnabled()

isDoubleBufferingEnabled

public boolean isDoubleBufferingEnabled()

Возвращает true, если этот RepaintManager использует двойную буферизацию. Значение по умолчанию для этого свойства может отличаться от платформы к платформе. На платформах, где AWT поддерживает родную двойную буферизацию, значение по умолчанию будет false для предотвращения ненужной буферизации в Swing. На платформах, где родная двойная буферизация не поддерживается, значение по умолчанию будет true.

Возвращает:
true, если этот объект использует двойную буферизацию

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/swing/RepaintManager.html

Spec-Zone .ru
спецификации, руководства, описания, API