Spec-Zone.ru › OpenJDK 27

Класс RepaintManager

java.lang.Object
javax.swing.RepaintManager
public class RepaintManager extends Object
Этот класс управляет запросами на перерисовку, позволяя свести их количество к минимуму, например объединяя несколько запросов в один для компонентов дерева компонентов.

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

Начиная с:
1.2

Краткое описание конструкторов

Конструктор Описание
RepaintManager()
Создает новый экземпляр RepaintManager.

Краткое описание методов

Модификатор и тип Метод Описание
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() возвращает true.
static RepaintManager currentManager(Component c)
Возвращает RepaintManager для заданного Component.
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()
Проверяет все компоненты, помеченные как недействительные.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ждать, пока он не будет разбужен, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ждать, пока он не будет разбужен, обычно посредством уведомления или прерывания, либо пока не истечет заданное время.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ждать, пока он не будет разбужен, обычно посредством уведомления или прерывания, либо пока не истечет заданное время.

Подробное описание конструкторов

RepaintManager

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

Подробное описание методов

currentManager

public static RepaintManager currentManager(Component c)
Возвращает RepaintManager для заданного Component.
Параметры:
c — компонент Component; в реализации по умолчанию не используется, но переопределенная версия может использовать его для возврата разных экземпляров RepaintManager в зависимости от компонента
Возвращает:
объект RepaintManager

currentManager

public static RepaintManager currentManager(JComponent c)
Возвращает RepaintManager для вызывающего потока, которому передан JComponent.

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

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

setCurrentManager

public static void setCurrentManager(RepaintManager aRepaintManager)
Задает RepaintManager.
Параметры:
aRepaintManager — используемый объект RepaintManager

addInvalidComponent

public void addInvalidComponent(JComponent invalidComponent)
Помечает компонент как нуждающийся в компоновке и помещает в очередь задачу для потока диспетчеризации событий, которая проверит первый предок компонента, для которого isValidateRoot() возвращает true.
Параметры:
invalidComponent — компонент
См. также:
  • JComponent.isValidateRoot()
  • removeInvalidComponent(JComponent)

removeInvalidComponent

public void removeInvalidComponent(JComponent component)
Удаляет компонент из списка недействительных компонентов.
Параметры:
component — компонент
См. также:
  • addInvalidComponent(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 — высота области для перерисовки
Начиная с:
1.6
См. также:
  • JFrame.repaint(long, int, int, int, int)
  • JWindow.repaint(long, int, int, int, int)
  • JDialog.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(JComponent)

paintDirtyRegions

public void paintDirtyRegions()
Отрисовывает все компоненты, помеченные как требующие перерисовки.
См. также:
  • addDirtyRegion(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). Это происходит, когда для получающего RepaintManager задан максимальный размер двойного буфера.
Параметры:
c — компонент
proposedWidth — ширина буфера
proposedHeight — высота буфера
Возвращает:
изображение

getVolatileOffscreenBuffer

public Image getVolatileOffscreenBuffer(Component c, int proposedWidth, int proposedHeight)
Возвращает волатильный буфер вне экрана, который следует использовать как двойной буфер для указанного компонента c. Возвращенное изображение будет экземпляром VolatileImage либо значением null, если создать объект VolatileImage не удалось. Размер этого буфера может быть меньше, чем (proposedWidth,proposedHeight). Это происходит, когда для данного RepaintManager задан максимальный размер двойного буфера.
Параметры:
c — компонент
proposedWidth — ширина буфера
proposedHeight — высота буфера
Возвращает:
волатильное изображение
Начиная с:
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, если для этого объекта используется двойная буферизация

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API