- 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实现。
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 class
BasicProgressBarUI.ChangeHandler
这个类应该被视为一个“受保护”的内部类。
-
Field Summary
Fields Modifier and Type Field 描述 protected Rectangle
boxRect
用于保存弹出框(由getBox返回)的位置和大小以进行绘制。protected ChangeListener
changeListener
实例ChangeListener
。protected JProgressBar
progressBar
实例JProgressBar
。
-
构造方法摘要
构造方法 Constructor 描述 BasicProgressBarUI()
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 static ComponentUI
createUI(JComponent x)
返回一个新的实例BasicProgressBarUI
。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)
存储将在r
为当前动画索引绘制的弹跳框的位置和大小,并返回r
。protected int
getBoxLength(int availableLength, int otherDimension)
返回要画的“弹跳框”的长度。protected int
getCellLength()
返回要在进度条中呈现的每个单元格/单位的宽度(如果为HORIZONTAL)或高度(如果为VERTICAL)。protected int
getCellSpacing()
返回进度条中每个单元格/单位之间的间距。protected int
getFrameCount()
返回由不确定的JProgessBar使用的完整动画循环的帧数。Dimension
getMaximumSize(JComponent c)
返回指定组件的最大尺寸,适合外观和感觉。Dimension
getMinimumSize(JComponent c)
该组件的最小大小为10。protected Dimension
getPreferredInnerHorizontal()
返回水平的首选大小JProgressBar
。protected Dimension
getPreferredInnerVertical()
返回首选的垂直尺寸JProgressBar
。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()
Unintalls默认属性。protected void
uninstallListeners()
删除此对象安装的所有侦听器。void
uninstallUI(JComponent c)
在installUI
反转在指定组件上完成的配置。-
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, update
-
-
-
-
字段详细信息
-
progressBar
protected JProgressBar progressBar
实例JProgressBar
。
-
changeListener
protected ChangeListener changeListener
实例ChangeListener
。
-
boxRect
protected Rectangle boxRect
用于保存弹出框(由getBox返回)的位置和大小以进行绘制。- 从以下版本开始:
- 1.5
-
-
方法详细信息
-
createUI
public static ComponentUI createUI(JComponent x)
返回一个新的实例BasicProgressBarUI
。- 参数
-
x
- 一个组件 - 结果
-
一个新的例子
BasicProgressBarUI
-
installUI
public void installUI(JComponent c)
描述从类复制:ComponentUI
适当地配置指定的组件的外观和感觉。 当正在安装ComponentUI
实例作为指定组件上的UI委托时,将调用此方法。 该方法应该完全配置组件的外观,包括以下内容:- 为组件上的颜色,字体,边框,图标,不透明度等安装默认属性值。 只要有可能,由客户端程序初始化的属性值不应该被重写。
- 如有必要,请在组件上安装
LayoutManager
。 - 创建/添加任何所需的子组件到组件。
- 在组件上创建/安装事件监听器。
- 在组件上创建/安装
PropertyChangeListener
,以便适当地检测和响应组件属性更改。 - 在组件上安装键盘UI(助记符,遍历等)。
- 初始化任何适当的实例数据。
- 重写:
-
installUI
在ComponentUI
- 参数
-
c
- 正在安装此UIc
的组件 - 另请参见:
-
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
实例处于干净状态(无外部侦听器,外观特定属性对象等)。 这应该包括以下内容:- 从组件中删除任何UI集边框。
- 删除组件上的任何UI集布局管理器。
- 从组件中删除任何添加了UI的子组件。
- 从组件中删除任何UI添加的事件/属性侦听器。
- 从组件中删除任何UI安装的键盘UI。
- 对任何分配的实例数据对象进行空白以允许GC。
- 重写:
-
uninstallUI
在ComponentUI
- 参数
-
c
- 正在删除此UIc
的组件; 这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用 - 另请参见:
-
ComponentUI.installUI(javax.swing.JComponent)
,JComponent.updateUI()
-
installDefaults
protected void installDefaults()
安装默认属性。
-
uninstallDefaults
protected void uninstallDefaults()
Unintalls默认属性。
-
installListeners
protected void installListeners()
注册听众。
-
startAnimationTimer
protected void startAnimationTimer()
启动动画线程,必要时创建和初始化它。 当一个不确定的进度条开始动画化时,将调用此方法。 其原因可能包括:- 进度条是确定的,可以显示
- 进度条是可显示的并且变得确定
- 进度条是可显示和确定的,并且安装了此UI
- 从以下版本开始:
- 1.4
- 另请参见:
-
stopAnimationTimer()
-
stopAnimationTimer
protected void stopAnimationTimer()
停止动画线程。 当不确定动画应停止时,将调用此方法。 其原因可能包括:- 进度栏变为确定
- 进度条不再是可显示层次结构的一部分
- 这个UI在卸载
- 从以下版本开始:
- 1.4
- 另请参见:
-
startAnimationTimer()
-
uninstallListeners
protected void uninstallListeners()
删除此对象安装的所有侦听器。
-
getBaseline
public int getBaseline(JComponent c, int width, int height)
返回基线。- 重写:
-
getBaseline
在ComponentUI
- 参数
-
c
-JComponent
正在请求基准 -
width
- 获取基准的宽度 -
height
- 获取基准的高度 - 结果
- 基线或值<0表示没有合理的基线
- 异常
-
NullPointerException
- 如果c
是null
-
IllegalArgumentException
- 如果宽度或高度<0 - 从以下版本开始:
- 1.6
- 另请参见:
-
JComponent.getBaseline(int, int)
-
getBaselineResizeBehavior
public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
返回一个枚举,指示组件的基线如何随着大小的变化而改变。- 重写:
-
getBaselineResizeBehavior
在ComponentUI
- 参数
-
c
-JComponent
以返回基准调整大小行为 - 结果
- 一个枚举,指示基准随着组件大小的变化而改变
- 异常
-
NullPointerException
- 如果c
是null
- 从以下版本开始:
- 1.6
- 另请参见:
-
JComponent.getBaseline(int, int)
-
getPreferredInnerHorizontal
protected Dimension getPreferredInnerHorizontal()
返回水平的首选大小JProgressBar
。- 结果
-
优选尺寸的水平
JProgressBar
-
getPreferredInnerVertical
protected Dimension getPreferredInnerVertical()
返回首选的垂直尺寸JProgressBar
。- 结果
-
首选尺寸垂直
JProgressBar
-
getSelectionForeground
protected Color getSelectionForeground()
“selectionForeground”是当绘制在进度条的填充区域时的文本颜色。- 结果
- 所选前景的颜色
-
getSelectionBackground
protected Color getSelectionBackground()
“selectionBackground”是当文字绘制在进度条的未填充区域时的颜色。- 结果
- 所选背景的颜色
-
getCellLength
protected int getCellLength()
返回要在进度条中呈现的每个单元格/单位的宽度(如果为HORIZONTAL)或高度(如果为VERTICAL)。 然而,对于文本渲染简化和审美考虑,当正在呈现进度字符串时,该函数将返回1。- 结果
- 该值表示单元格之间的间距
- 另请参见:
-
setCellLength(int)
,JProgressBar.isStringPainted()
-
setCellLength
protected void setCellLength(int cellLen)
设置单元格长度。- 参数
-
cellLen
- 一个新的单元格长度
-
getCellSpacing
protected int getCellSpacing()
返回进度条中每个单元格/单位之间的间距。 然而,对于文本渲染简化和审美考虑,当渲染进度字符串时,此函数将返回0。- 结果
- 该值表示单元格之间的间距
- 另请参见:
-
setCellSpacing(int)
,JProgressBar.isStringPainted()
-
setCellSpacing
protected void setCellSpacing(int cellSpace)
设置单元格间距。- 参数
-
cellSpace
- 一个新的单元格间距
-
getAmountFull
protected int getAmountFull(Insets b, int width, int height)
这将根据从模型收集的百分比确定应填充的进度条的数量。 这是一个常见的操作,因此它被抽象出来。 它假设您的进度条是线性的。 也就是说,如果您正在制作循环进度指示器,则需要覆盖此方法。- 参数
-
b
- 插图 -
width
- 一个宽度 -
height
- 一个高度 - 结果
- 应填充的进度条的数量
-
paint
public void paint(Graphics g, JComponent c)
代表绘画为两种方法之一:paintDeterminate或paintIndeterminate。- 重写:
-
paint
在ComponentUI
- 参数
-
g
- 要绘画的Graphics
上下文 -
c
- 正在涂漆的部件; 这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用 - 另请参见:
-
ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)
-
getBox
protected Rectangle getBox(Rectangle r)
存储将在r
为当前动画索引绘制的弹跳框的位置和大小,并返回r
。 这增加在这一类的实现的执行画子类paintIndeterminate
-画出轮廓周围的跳动框,例如-可以使用此方法获取刚刚绘制的跳动框的位置。 通过覆盖此方法,您可以完全控制弹跳框的大小和位置,而无需重新实现paintIndeterminate
。- 参数
-
r
- 要修改的Rectangle实例; 可以是null
- 结果
-
null
如果没有框应该绘制; 否则,返回传入矩形(如果非空)或新矩形 - 从以下版本开始:
- 1.4
- 另请参见:
-
setAnimationIndex(int)
-
getBoxLength
protected int getBoxLength(int availableLength, int otherDimension)
返回要画的“弹跳框”的长度。 该方法由默认实现paintIndeterminate
调用,以获得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)
所有的线性弹跳框进度条都应该做正确的事情。 如果您正在制作另一种进度条,请覆盖此项。- 参数
-
g
-实例Graphics
-
c
- 一个组件 - 从以下版本开始:
- 1.4
- 另请参见:
-
paintDeterminate(java.awt.Graphics, javax.swing.JComponent)
-
paintDeterminate
protected void paintDeterminate(Graphics g, JComponent c)
所有目的的油漆方法应该对几乎所有线性,确定进度条做正确的事情。 通过在默认表中设置几个值,绘制进度条时,应该可以正常工作。 当然,如果你正在做一个圆形或半圆形的进度条- 参数
-
g
-实例Graphics
-
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)
绘制进度字符串。- 参数
-
g
-实例Graphics
-
x
- X边界框的位置 -
y
- Y边界框的位置 -
width
- 边框的宽度 -
height
- 边框高度 -
amountFull
- 填充区域的大小,宽度或高度取决于方向。 -
b
- 进度条的内b
。
-
getStringPlacement
protected Point getStringPlacement(Graphics g, String progressString, int x, int y, int width, int height)
指定进度字符串将被绘制的地方。 这个实现将它放在进度条的中心(在x和y中)。 如果您想要向右,向左,向上或向下对齐进度字符串,或者由于任何原因需要微调它,则覆盖此方法。- 参数
-
g
-实例Graphics
-
progressString
- 一个文本 -
x
- 一个X坐标 -
y
- 一个Y坐标 -
width
- 一个宽度 -
height
- 一个高度 - 结果
- 进行字符串将被绘制的地方
-
getPreferredSize
public Dimension getPreferredSize(JComponent c)
描述从类复制:ComponentUI
返回指定组件的偏好大小,适合外观和感觉。 如果返回null
,则优选的大小将由组件的布局管理器计算(这是安装了特定布局管理器的任何组件的首选方法)。 此方法的默认实现返回null
。- 重写:
-
getPreferredSize
在类ComponentUI
- 参数
-
c
- 要查询其首选大小的组件; 这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用 - 结果
-
一个
Dimension
对象包含给定组件的首选大小适合外观和感觉 - 另请参见:
-
JComponent.getPreferredSize()
,LayoutManager.preferredLayoutSize(java.awt.Container)
-
getMinimumSize
public Dimension getMinimumSize(JComponent c)
该组件的最小大小为10.这里的理由是每10%至少应有一个像素。- 重写:
-
getMinimumSize
在ComponentUI
- 参数
-
c
- 查询最小大小的组件; 这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用 - 结果
-
一个
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
- 查询最大大小的组件; 这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用 - 结果
-
一个
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”UI默认值指定。- 从以下版本开始:
- 1.4
- 另请参见:
-
setAnimationIndex(int)
-
-