Класс BasicProgressBarUI
- java.lang.Object
-
- javax.swing.plaf.ComponentUI
-
- javax.swing.plaf.ProgressBarUI
-
- javax.swing.plaf.basic.BasicProgressBarUI
- Прямые известные подклассы:
- MetalProgressBarUI, SynthProgressBarUI
public class BasicProgressBarUI extends ProgressBarUI
Реализация ProgressBarUI с базовой L&F.
Вложенные классы
| Модификатор и тип | Класс и описание |
|---|---|
class |
BasicProgressBarUI.ChangeHandler Этот класс следует рассматривать как «защищённый» вложенный класс. |
Поля
| Модификатор и тип | Поле и описание |
|---|---|
protected Rectangle |
boxRect Используется для хранения местоположения и размера прямоугольника, который нужно отрисовать (возвращается методом getBox). |
protected ChangeListener |
changeListener |
protected JProgressBar |
progressBar |
Конструкторы
| Конструктор и описание |
|---|
BasicProgressBarUI() |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
static ComponentUI |
createUI(JComponent x) |
protected int |
getAmountFull(Insets b,
int width,
int height) Определяет, какая часть полосы прогресса должна быть заполнена, исходя из процента выполнения, полученного от модели. |
protected int |
getAnimationIndex() Получает индекс текущей анимационной кадра. |
int |
getBaseline(JComponent c,
int width,
int height) Возвращает значение базовой линии. |
Component.BaselineResizeBehavior |
getBaselineResizeBehavior(JComponent c) Возвращает перечисление, указывающее, как меняется базовая линия компонента при изменении размера. |
protected Rectangle |
getBox(Rectangle r) Хранит позицию и размер прямоугольника, который будет отрисован для текущего индекса кадра анимации в |
protected int |
getBoxLength(int availableLength,
int otherDimension) Возвращает длину «прямоугольника анимации», который нужно нарисовать. |
protected int |
getCellLength() Возвращает ширину (если ГОРИЗОНТАЛЬНО) или высоту (если ВЕРТИКАЛЬНО) каждой из отдельных ячеек/единиц, которые нужно отобразить в полосе прогресса. |
protected int |
getCellSpacing() Возвращает интервал между каждой из ячеек/единиц в полосе прогресса. |
protected int |
getFrameCount() Возвращает количество кадров для полного цикла анимации, используемого для неопределённой JProgessBar. |
Dimension |
getMaximumSize(JComponent c) Возвращает максимальный размер для указанного компонента, подходящий для выбранного внешнего вида. |
Dimension |
getMinimumSize(JComponent c) Минимальный размер для этого компонента — 10. |
protected Dimension |
getPreferredInnerHorizontal() |
protected Dimension |
getPreferredInnerVertical() |
Dimension |
getPreferredSize(JComponent c) Возвращает предпочтительный размер для указанного компонента, подходящий для выбранного внешнего вида. |
protected Color |
getSelectionBackground() «selectionBackground» — цвет текста, когда он нарисован поверх незаполненной области полосы прогресса. |
protected Color |
getSelectionForeground() «selectionForeground» — цвет текста, когда он нарисован поверх заполненной области полосы прогресса. |
protected Point |
getStringPlacement(Graphics g,
String progressString,
int x,
int y,
int width,
int height) Указывает место, где будет нарисована строка прогресса. |
protected void |
incrementAnimationIndex() Устанавливает индекс текущего анимационного кадра на следующее допустимое значение, что приводит к перерисовке полосы прогресса. |
protected void |
installDefaults() |
protected void |
installListeners() |
void |
installUI(JComponent c) Настраивает указанный компонент для выбранного внешнего вида. |
void |
paint(Graphics g,
JComponent c) Делегирует отрисовку одному из двух методов: paintDeterminate или paintIndeterminate. |
protected void |
paintDeterminate(Graphics g,
JComponent c) Метод отрисовки общего назначения, который должен корректно работать почти для всех линейных, детерминированных полос прогресса. |
protected void |
paintIndeterminate(Graphics g,
JComponent c) Метод отрисовки общего назначения, который должен корректно работать для всех линейных полос прогресса с «прыгающим прямоугольником». |
protected void |
paintString(Graphics g,
int x,
int y,
int width,
int height,
int amountFull,
Insets b) |
protected void |
setAnimationIndex(int newValue) Устанавливает индекс текущего кадра анимации на указанное значение и запрашивает перерисовку полосы прогресса. |
protected void |
setCellLength(int cellLen) |
protected void |
setCellSpacing(int cellSpace) |
protected void |
startAnimationTimer() Запускает поток анимации, создавая и инициализируя его при необходимости. |
protected void |
stopAnimationTimer() Останавливает поток анимации. |
protected void |
uninstallDefaults() |
protected void |
uninstallListeners() Удаляет все установленные этим объектом слушатели. |
void |
uninstallUI(JComponent c) Отменяет настройки, которые были выполнены на указанном компоненте во время |
Методы, унаследованные от класса javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, update Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
progressBar
protected JProgressBar progressBar
changeListener
protected ChangeListener changeListener
boxRect
protected Rectangle boxRect
Используется для хранения местоположения и размера прыгающего прямоугольника (возвращаемого методом getBox), который будет отрисован.
- Since:
- 1.5
Конструкторы
BasicProgressBarUI
public BasicProgressBarUI()
Методы
createUI
public static ComponentUI createUI(JComponent x)
installUI
public void installUI(JComponent c)
Описание скопировано из класса: ComponentUI
Настраивает указанный компонент соответствующим образом для внешнего вида. Этот метод вызывается, когда экземпляр ComponentUI устанавливается в качестве делегата UI для указанного компонента. Этот метод должен полностью настроить компонент для внешнего вида, включая следующее:
- Установка значений свойств по умолчанию для цвета, шрифтов, границ, иконок, непрозрачности и т. д. на компоненте. Значения свойств, инициализированные программой клиента, по возможности не должны переопределяться.
- Установка
LayoutManagerна компоненте, если необходимо. - Создание/добавление любых необходимых подкомпонентов в компонент.
- Создание/установка обработчиков событий на компоненте.
- Создание/установка обработчика
PropertyChangeListenerна компоненте для надлежащего обнаружения и реагирования на изменения свойств компонента. - Установка пользовательского интерфейса клавиатуры (мнемоники, перемещение по элементам и т. д.) на компоненте.
- Инициализация любых соответствующих данных экземпляра.
- Overrides:
-
installUIв классеComponentUI - Parameters:
-
c- компонент, в котором устанавливается этот делегат UI - See Also:
-
ComponentUI.uninstallUI(javax.swing.JComponent),JComponent.setUI(javax.swing.plaf.ComponentUI),JComponent.updateUI()
uninstallUI
public void uninstallUI(JComponent c)
Описание скопировано из класса: ComponentUI
Отменяет конфигурацию, выполненную на указанном компоненте во время installUI. Этот метод вызывается, когда этот экземпляр UIComponent удаляется как делегат UI для указанного компонента. Этот метод должен отменить конфигурацию, выполненную в installUI, внимательно сохраняя экземпляр JComponent в чистовом состоянии (без лишних слушателей, специфичных для внешнего вида объектов свойств и т. д.). Это должно включать следующее:
- Удаление установленных внешним видом границ из компонента.
- Удаление установленных внешним видом менеджеров компоновки из компонента.
- Удаление добавленных внешним видом подкомпонентов из компонента.
- Удаление добавленных внешним видом обработчиков событий/свойств из компонента.
- Удаление установленного внешним видом пользовательского интерфейса клавиатуры из компонента.
- Сброс всех выделенных объектов данных экземпляра для освобождения памяти.
- Overrides:
-
uninstallUIв классеComponentUI - Parameters:
-
c- компонент, из которого удаляется этот делегат UI; этот аргумент часто игнорируется, но может использоваться, если объект UI является бессостоятельным и используется несколькими компонентами - See Also:
-
ComponentUI.installUI(javax.swing.JComponent),JComponent.updateUI()
installDefaults
protected void installDefaults()
uninstallDefaults
protected void uninstallDefaults()
installListeners
protected void installListeners()
startAnimationTimer
protected void startAnimationTimer()
Запускает поток анимации, создавая и инициализируя его при необходимости. Этот метод вызывается, когда должна начаться анимация полосы прогресса неопределенного типа. Причины могут включать:
- Полоса прогресса детерминирована и становится отображаемой
- Полоса прогресса отображается и становится детерминированной
- Полоса прогресса отображается, детерминирована и этот UI установлен
- Since:
- 1.4
- See Also:
stopAnimationTimer()
stopAnimationTimer
protected void stopAnimationTimer()
Останавливает поток анимации. Этот метод вызывается, когда анимация неопределенного типа должна быть остановлена. Причины могут включать:
- Полоса прогресса изменяется на детерминированную
- Полоса прогресса больше не является частью отображаемой иерархии
- Этот UI удален
- Since:
- 1.4
- See Also:
startAnimationTimer()
uninstallListeners
protected void uninstallListeners()
Удаляет все обработчики событий, установленные этим объектом.
getBaseline
public int getBaseline(JComponent c,
int width,
int height) Возвращает базовую линию.
- Overrides:
-
getBaselineв классеComponentUI - Parameters:
-
c-JComponentдля которого запрашивается базовая линия -
width- ширина для получения базовой линии -
height- высота для получения базовой линии - Returns:
- базовая линия или значение < 0, указывающее, что нет разумной базовой линии
- Throws:
-
NullPointerException- еслиcявляетсяnull -
IllegalArgumentException- если ширина или высота < 0 - Since:
- 1.6
- See Also:
JComponent.getBaseline(int, int)
getBaselineResizeBehavior
public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
Возвращает перечисление, указывающее, как меняется базовая линия компонента при изменении размера.
- Overrides:
-
getBaselineResizeBehaviorв классеComponentUI - Parameters:
-
c-JComponentдля которого возвращается поведение изменения размера базовой линии - Returns:
- перечисление, указывающее, как изменяется базовая линия при изменении размера компонента
- Throws:
-
NullPointerException- еслиcявляетсяnull - Since:
- 1.6
- See Also:
JComponent.getBaseline(int, int)
getPreferredInnerHorizontal
protected Dimension getPreferredInnerHorizontal()
getPreferredInnerVertical
protected Dimension getPreferredInnerVertical()
getSelectionForeground
protected Color getSelectionForeground()
«selectionForeground» — цвет текста, когда он нарисован поверх залитой области полосы прогресса.
getSelectionBackground
protected Color getSelectionBackground()
«selectionBackground» — цвет текста, когда он нарисован поверх незаполненной области полосы прогресса.
getCellLength
protected int getCellLength()
Возвращает ширину (если ГОРИЗОНТАЛЬНО) или высоту (если ВЕРТИКАЛЬНО) каждого отдельного элемента/единицы, которые будут отрисованы в полосе прогресса. Однако для упрощения рендеринга текста и эстетических соображений эта функция вернёт 1 при отрисовке прогресс-строки.
- Returns:
- значение, представляющее интервал между элементами
- See Also:
-
setCellLength(int),JProgressBar.isStringPainted()
setCellLength
protected void setCellLength(int cellLen)
getCellSpacing
protected int getCellSpacing()
Возвращает интервал между каждыми элементами/единицами в полосе прогресса. Однако для упрощения рендеринга текста и эстетических соображений эта функция вернёт 0 при отрисовке прогресс-строки.
- Returns:
- значение, представляющее интервал между элементами
- See Also:
-
setCellSpacing(int),JProgressBar.isStringPainted()
setCellSpacing
protected void setCellSpacing(int cellSpace)
getAmountFull
protected int getAmountFull(Insets b,
int width,
int height) Определяет количество заполненной полосы прогресса, основанное на процентах выполнения, полученных от модели. Это часто используемая операция, поэтому она была абстрагирована. Предполагается, что ваша полоса прогресса линейная. То есть, если вы создаёте индикатор круговой прогрессии, вам нужно переопределить этот метод.
paint
public void paint(Graphics g,
JComponent c) Делегирует отрисовку одному из двух методов: paintDeterminate или paintIndeterminate.
- Overrides:
-
paintв классеComponentUI - Parameters:
-
g- контекстGraphicsдля отрисовки -
c- компонент, который рисуется; этот аргумент часто игнорируется, но может использоваться, если объект UI является бессостоятельным и используется несколькими компонентами - See Also:
ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)
getBox
protected Rectangle getBox(Rectangle r)
Сохраняет положение и размер прыгающего прямоугольника, который будет нарисован для текущего индекса анимации в r и возвращает r. Подклассы, добавляющие к отрисовке, выполняемой в реализации этого класса paintIndeterminate (например, для отрисовки контура вокруг прыгающего прямоугольника), могут использовать этот метод для получения местоположения прыгающего прямоугольника, который только что был нарисован. Переопределяя этот метод, вы получаете полный контроль над размером и положением прыгающего прямоугольника, без необходимости повторной реализации paintIndeterminate.
- Parameters:
-
r- экземпляр Rectangle, который будет изменён; может бытьnull - Returns:
-
nullесли прямоугольник не должен быть нарисован; в противном случае возвращает переданный прямоугольник (если он не null) или новый прямоугольник - Since:
- 1.4
- See Also:
setAnimationIndex(int)
getBoxLength
protected int getBoxLength(int availableLength,
int otherDimension) Возвращает длину "прыгающего прямоугольника", который нужно нарисовать. Этот метод вызывается реализацией по умолчанию paintIndeterminate для получения ширины (если полоса прогресса горизонтальная) или высоты (если вертикальная) прямоугольника. Например:
boxRect.width = getBoxLength(componentInnards.width,
componentInnards.height); - Параметры:
-
availableLength- количество места, доступного для перемещения рамки отскока; например, для горизонтальной полосы прогресса это внутренняя ширина полосы прогресса (ширина компонента минус границы) -
otherDimension- для горизонтальной полосы прогресса это внутренняя высота полосы прогресса; это значение может быть использовано для ограничения или определения возвращаемого значения - Возвращает:
- размер определяемой размерности ячейки; не должно превышать
availableLength - С:
- 1.5
- См. также:
SwingUtilities.calculateInnerArea(javax.swing.JComponent, java.awt.Rectangle)
paintIndeterminate
protected void paintIndeterminate(Graphics g,
JComponent c) Метод рисования общего назначения, который должен правильно работать для всех линейных полос прогресса с отскакивающей рамкой. Переопределите этот метод, если вы создаёте другой тип полосы прогресса.
- С:
- 1.4
- См. также:
paintDeterminate(java.awt.Graphics, javax.swing.JComponent)
paintDeterminate
protected void paintDeterminate(Graphics g,
JComponent c) Метод рисования общего назначения, который должен правильно работать для почти всех линейных, определенных полос прогресса. Установив несколько значений в таблице значений по умолчанию, всё должно работать правильно для рисования вашей полосы прогресса. Естественно, переопределите этот метод, если вы создаёте круговую или полукруговую полосу прогресса.
- С:
- 1.4
- См. также:
paintIndeterminate(java.awt.Graphics, javax.swing.JComponent)
paintString
protected void paintString(Graphics g,
int x,
int y,
int width,
int height,
int amountFull,
Insets b) getStringPlacement
protected Point getStringPlacement(Graphics g,
String progressString,
int x,
int y,
int width,
int height) Указывает место, где будет нарисована строка прогресса. Эта реализация размещает её в центре полосы прогресса (по обеим осям). Переопределите этот метод, если хотите выровнять строку прогресса по правому, левому краю, верху или низу, или если вам нужно её сместить по каким-либо причинам.
getPreferredSize
public Dimension getPreferredSize(JComponent c)
Описание скопировано из класса: ComponentUI
Возвращает предпочтительный размер указанного компонента, соответствующий выбранному внешнему виду. Если возвращается null, предпочтительный размер будет вычислен менеджером компоновки компонента (это предпочтительный подход для любого компонента с установленным менеджером компоновки). По умолчанию этот метод возвращает null.
- Переопределяет:
-
getPreferredSizeв классеComponentUI - Параметры:
-
c- компонент, предпочтительный размер которого запрашивается; этот аргумент часто игнорируется, но может использоваться, если объект пользовательского интерфейса является бессостоятельным и используется несколькими компонентами - См. также:
-
JComponent.getPreferredSize(),LayoutManager.preferredLayoutSize(java.awt.Container)
getMinimumSize
public Dimension getMinimumSize(JComponent c)
Минимальный размер для этого компонента составляет 10. Это обосновано тем, что должно быть по крайней мере один пиксель на 10 процентов.
- Переопределяет:
-
getMinimumSizeв классеComponentUI - Параметры:
-
c- компонент, минимальный размер которого запрашивается; этот аргумент часто игнорируется, но может использоваться, если объект пользовательского интерфейса является бессостоятельным и используется несколькими компонентами - Возвращает:
- объект
Dimensionилиnull - См. также:
-
JComponent.getMinimumSize(),LayoutManager.minimumLayoutSize(java.awt.Container),ComponentUI.getPreferredSize(javax.swing.JComponent)
getMaximumSize
public Dimension getMaximumSize(JComponent c)
Описание скопировано из класса: ComponentUI
Возвращает максимальный размер указанного компонента, соответствующий выбранному внешнему виду. Если возвращается null, максимальный размер будет вычислен менеджером компоновки компонента (это предпочтительный подход для любого компонента с установленным менеджером компоновки). По умолчанию эта реализация вызывает getPreferredSize и возвращает это значение.
- Переопределяет:
-
getMaximumSizeв классеComponentUI - Параметры:
-
c- компонент, максимальный размер которого запрашивается; этот аргумент часто игнорируется, но может использоваться, если объект пользовательского интерфейса является бессостоятельным и используется несколькими компонентами - Возвращает:
- объект
Dimensionилиnull - См. также:
-
JComponent.getMaximumSize(),LayoutManager2.maximumLayoutSize(java.awt.Container)
getAnimationIndex
protected int getAnimationIndex()
Возвращает индекс текущей кадра анимации.
- С:
- 1.4
getFrameCount
protected final int getFrameCount()
Возвращает количество кадров для полного цикла анимации, используемого неопределённой полосой прогресса JProgessBar. Часть прогресса будет перемещаться от одного края к другому и обратно во время всего цикла. Это визуальное поведение может быть изменено подклассами в других внешних видах.
- Возвращает:
- количество кадров
- С:
- 1.6
setAnimationIndex
protected void setAnimationIndex(int newValue)
Устанавливает индекс текущего кадра анимации в указанное значение и запрашивает перерисовку полосы прогресса. Подклассы, не использующие код рисования по умолчанию, могут потребовать переопределения этого метода, чтобы изменить способ вызова метода repaint.
- Параметры:
-
newValue- новый индекс анимации; его значение не проверяется - С:
- 1.4
- См. также:
incrementAnimationIndex()
incrementAnimationIndex
protected void incrementAnimationIndex()
Устанавливает индекс текущего кадра анимации на следующее допустимое значение, что приводит к перерисовке полосы прогресса. Следующее допустимое значение по умолчанию равно текущему индексу анимации плюс один. Если новое значение окажется слишком большим, этот метод устанавливает индекс в 0. Подклассы могут потребовать переопределения этого метода, чтобы убедиться, что индекс не превышает количество кадров, необходимое для конкретного экземпляра полосы прогресса. Этот метод вызывается фоновым потоком анимации каждые X миллисекунд, где X определяется значением по умолчанию "ProgressBar.repaintInterval" пользовательского интерфейса.
- С:
- 1.4
- См. также:
setAnimationIndex(int)
© 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.