javax.swing.plaf.basic

接口
java.lang.Object
  继承者 javax.swing.plaf.ComponentUI
      继承者 javax.swing.plaf.ProgressBarUI
          继承者 javax.swing.plaf.basic.BasicProgressBarUI
直接已知子类:
MetalProgressBarUI

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)
          存储将为 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()
           
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)
          在 installUI 期间,在指定组件上反向执行的配置操作。
 
从类 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 返回)的位置和大小。

从以下版本开始:
1.5
构造方法详细信息

BasicProgressBarUI

public BasicProgressBarUI()
方法详细信息

createUI

public static ComponentUI createUI(JComponent x)

installUI

public void installUI(JComponent c)
从类 ComponentUI 复制的描述
配置指定组件,使其适合外观。当 ComponentUI 实例将作为 UI 委托安装在指定组件上时,可调用此方法。此方法应该为外观完整地配置组件,包括以下方面:
  1. 在组件上安装用于颜色、字体、边框、图标、不透明性等方面的所有默认属性值。只要有可能,就 应该重写由客户端程序初始化的属性值。
  2. 如有必要,可在组件上安装一个 LayoutManager
  3. 将所需的所有子组件创建/添加到组件中。
  4. 在组件上创建/安装事件侦听器。
  5. 为了检测和适当响应组件属性更改,可在组件上创建/安装一个 PropertyChangeListener
  6. 在组件上安装键盘 UI(助记符、遍历等等)。
  7. 初始化任何适当的实例数据。

覆盖:
ComponentUI 中的 installUI
参数:
c - 将安装此 UI 委托的组件
另请参见:
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 实例处于某种洁净状态(没有额外的侦听器、没有特定于外观的属性对象等等)。配置内容应该包括以下方面:
  1. 从组件中移除所有 UI 设置的边框。
  2. 从组件上移除所有 UI 设置的布局管理器。
  3. 从组件中移除所有 UI 添加的子组件。
  4. 从组件中移除所有 UI 添加的事件/属性侦听器。
  5. 从组件中移除所有 UI 安装的键盘 UI。
  6. 使所有已分配的实例数据对象无效,从而允许进行 GC 操作。

覆盖:
ComponentUI 中的 uninstallUI
参数:
c - 从中移除此 UI 委托的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数
另请参见:
ComponentUI.installUI(javax.swing.JComponent), JComponent.updateUI()

installDefaults

protected void installDefaults()

uninstallDefaults

protected void uninstallDefaults()

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)
返回基线。

覆盖:
ComponentUI 中的 getBaseline
参数:
c - 为其请求基线的 JComponent
width - 为其获取基线的宽度
height - 为其获取基线的高度
返回:
基线;如果没有合理的基线,则返回 < 0 的值
抛出:
NullPointerException - 如果 cnull
IllegalArgumentException - 如果宽度或高度 < 0
从以下版本开始:
1.6
另请参见:
JComponent.getBaseline(int, int)

getBaselineResizeBehavior

public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
返回一个枚举,它指示该组件的基线如何随大小的改变而发生更改。

覆盖:
ComponentUI 中的 getBaselineResizeBehavior
参数:
c - 为其返回调整大小行为的 JComponent
返回:
一个枚举,指示基线如何随组件大小的改变而发生更改
抛出:
NullPointerException - 如果 cnull
从以下版本开始:
1.6
另请参见:
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()
返回要在进度条中呈现的每个单个单元格/单元的宽度(如果为 HORIZONTAL)或高度(如果为 VERTICAL)。但是,为了文本呈现的简易性和出于审美考虑,呈现进度字符串时,此方法将返回 1。

返回:
表示单元格之间间隔的值
另请参见:
setCellLength(int), JProgressBar.isStringPainted()

setCellLength

protected void setCellLength(int cellLen)

getCellSpacing

protected int getCellSpacing()
返回进度条中每个单元格/单元之间的间隔。但是,为了文本呈现的简易性和出于审美考虑,呈现进度字符串时,此方法将返回 0。

返回:
表示单元格之间间隔的值
另请参见:
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。

覆盖:
ComponentUI 中的 paint
参数:
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;否则返回传入的矩形(如果非 null)或新矩形
从以下版本开始:
1.4
另请参见:
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)
指定将绘制进度字符串的位置。此实现将其置于进度条的中心(x 和 y 都是如此)。如果要向右、向左、向上或向下对齐进度字符串或者不管出于何种原因需要轻微移动它,则重写此方法。


getPreferredSize

public Dimension getPreferredSize(JComponent c)
从类 ComponentUI 复制的描述
返回指定组件的适合外观的首选大小。如果返回 null,则首选大小将由组件的布局管理器计算(对于安装了特定布局管理器的组件而言,这是首选方法)。此方法的默认实现返回 null

覆盖:
ComponentUI 中的 getPreferredSize
参数:
c - 将查询其首选大小的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数
另请参见:
JComponent.getPreferredSize(), LayoutManager.preferredLayoutSize(java.awt.Container)

getMinimumSize

public Dimension getMinimumSize(JComponent c)
此组件的最小大小为 10。此处的基本原理是,每 10% 应该至少有一个像素。

覆盖:
ComponentUI 中的 getMinimumSize
参数:
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 并返回该值。

覆盖:
ComponentUI 中的 getMaximumSize
参数:
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)