Класс RepaintManager
- java.lang.Object
-
- javax.swing.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) | Добавляет |
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) | Возвращает буфер вне экрана, который следует использовать в качестве буфера двойного буферизации с компонентом |
Image | getVolatileOffscreenBuffer(Component c,
int proposedWidth,
int proposedHeight) | Возвращает летучий буфер вне экрана, который следует использовать в качестве буфера двойного буферизации с указанным компонентом |
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) Добавляет 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()
Перерисовать все компоненты, которые были помечены как грязные.
toString
public String toString()
Возвращает строку, отображающую и идентифицирующую свойства этого объекта.
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