Класс RepaintManager
- java.lang.Object
-
- javax.swing.RepaintManager
public class RepaintManager extends Object
Этот класс управляет запросами на перерисовку, позволяя минимизировать количество перерисовок, например, объединяя несколько запросов в одну перерисовку для элементов дерева компонента.
Начиная с версии 1.6 RepaintManager обрабатывает запросы на перерисовку для основных компонентов Swing (JApplet, JWindow, JFrame и JDialog). Любые вызовы repaint для одного из них вызовут соответствующий метод addDirtyRegion.
Конструкторы
| Конструктор и описание |
|---|
RepaintManager() Создает новый экземпляр RepaintManager. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
addDirtyRegion(Applet applet,
int x,
int y,
int w,
int h) Добавляет |
void |
addDirtyRegion(JComponent c,
int x,
int y,
int w,
int h) Добавляет компонент в список компонентов, которые должны быть обновлены. |
void |
addDirtyRegion(Window window,
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- компонент -- не используется в реализации по умолчанию, но может использоваться переопределённой версией для возвращения другого 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 для группы потоков потока вызова.
- Параметры:
-
aRepaintManager- объект RepaintManager для использования
addInvalidComponent
public void addInvalidComponent(JComponent invalidComponent)
Помечает компонент как нуждающийся в разметке и добавляет в очередь исполняемый объект для потока обработки событий, который сначала проверит родительский компонент isValidateRoot().
removeInvalidComponent
public void removeInvalidComponent(JComponent 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
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)
Возвращает текущую область грязи для компонента. Возвращает пустой прямоугольник, если компонент не грязный.
markCompletelyDirty
public void markCompletelyDirty(JComponent aComponent)
Помечает компонент полностью грязным. aComponent будет полностью перерисован во время следующего вызова paintDirtyRegions().
markCompletelyClean
public void markCompletelyClean(JComponent aComponent)
Помечает компонент полностью чистым. aComponent не будет перерисован во время следующего вызова paintDirtyRegions().
isCompletelyDirty
public boolean isCompletelyDirty(JComponent aComponent)
Удобный метод, который возвращает true, если aComponent будет полностью перерисован во время следующего вызова paintDirtyRegions(). Если вычисление областей грязи дорого для вашего компонента, используйте этот метод и избегайте вычисления области грязи, если он возвращает true.
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). Это происходит, когда максимальный размер буфера двойного буферизации был установлен для получающего repaint manager.
getVolatileOffscreenBuffer
public Image getVolatileOffscreenBuffer(Component c,
int proposedWidth,
int proposedHeight) Возвращает буфер динамического вне экрана, который должен использоваться как буфер двойного буферизации со указанным компонентом c. Возвращаемый образ будет экземпляром VolatileImage или null, если объект VolatileImage не мог быть создан. Этот буфер может быть меньше, чем (proposedWidth,proposedHeight). Это происходит, когда максимальный размер буфера двойного буферизации был установлен для этого repaint manager.
- Since:
- 1.4
- См. также:
VolatileImage
setDoubleBufferMaximumSize
public void setDoubleBufferMaximumSize(Dimension 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.