- java.lang.Object
-
- javax.swing.plaf.nimbus.AbstractRegionPainter
-
- 实现的所有接口
-
Painter<JComponent>
public abstract class AbstractRegionPainter extends Object implements Painter<JComponent>
方便的基类,用于定义用于在Nimbus中呈现区域或组件的Painter实例。
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 protected static class
AbstractRegionPainter.PaintContext
绘制时有用的类封装状态。
-
构造方法摘要
构造方法 变量 构造器 描述 protected
AbstractRegionPainter()
创建一个新的AbstractRegionPainter
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 protected void
configureGraphics(Graphics2D g)
配置给定的Graphics2D。protected float
decodeAnchorX(float x, float dx)
给定控制点的编码X值,以及从该控制点到锚点的偏移距离,解码并返回表示锚点的实际像素位置的浮点值。protected float
decodeAnchorY(float y, float dy)
给定控制点的编码Y值,以及从该控制点到锚点的偏移距离,解码并返回表示锚点的实际像素位置的浮点值。protected Color
decodeColor(Color color1, Color color2, float midPoint)
解码并返回一种颜色,该颜色来自两种其他颜色之间的偏移。protected Color
decodeColor(String key, float hOffset, float sOffset, float bOffset, int aOffset)
解码并返回一种颜色,该颜色源自UI默认值中的基色。protected LinearGradientPaint
decodeGradient(float x1, float y1, float x2, float y2, float[] midpoints, Color[] colors)
给定用于创建LinearGradientPaint的参数,此方法将创建并返回线性渐变绘制。protected RadialGradientPaint
decodeRadialGradient(float x, float y, float r, float[] midpoints, Color[] colors)
给定用于创建RadialGradientPaint的参数,此方法将创建并返回径向渐变绘制。protected float
decodeX(float x)
解码并返回表示给定编码X值的实际像素位置的浮点值。protected float
decodeY(float y)
解码并返回表示给定编码y值的实际像素位置的浮点值。protected abstract void
doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys)
实际上执行绘画操作。protected Color
getComponentColor(JComponent c, String property, Color defaultColor, float saturationOffset, float brightnessOffset, int alphaOffset)
从给定的JComponent获取颜色属性。protected Object[]
getExtendedCacheKeys(JComponent c)
获取画家实现希望包含在图像缓存查找中的任何额外属性。protected abstract AbstractRegionPainter.PaintContext
getPaintContext()
获取此绘制操作的PaintContext。
-
-
-
方法详细信息
-
getExtendedCacheKeys
protected Object[] getExtendedCacheKeys(JComponent c)
获取画家实现希望包含在图像缓存查找中的任何额外属性。 每次调用paint(g,c,w,h)方法时都会检查此项。- 参数
-
c
- 当前绘制调用中的组件 - 结果
- 要包含在缓存键中的额外对象的数组
-
getPaintContext
protected abstract AbstractRegionPainter.PaintContext getPaintContext()
获取此绘制操作的PaintContext。 每种涂料都会调用此方法,因此应该快速并且不产生垃圾。 PaintContext包含缓存提示等信息。 它还包含在运行时解码点所需的数据,例如拉伸插入,定义编码点的画布大小以及是否反转拉伸插入。
此方法允许子类将具有可能不同的画布大小等的不同状态的绘图打包到一个AbstractRegionPainter实现中。
- 结果
- 与此绘制操作关联的PaintContext。
-
configureGraphics
protected void configureGraphics(Graphics2D g)
配置给定的Graphics2D。 通常,渲染提示或合成规则在绘制之前应用于Graphics2D对象,这应该影响所有后续绘制操作。 无论是对中间缓冲区执行渲染操作还是直接对显示执行渲染操作,此方法都提供了一个方便的钩子,用于在渲染之前配置Graphics对象。
- 参数
-
g
- 要配置的Graphics2D对象。 不会为空。
-
doPaint
protected abstract void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys)
实际上执行绘画操作。 子类必须实现此方法。 传递的图形对象可以表示要渲染到的实际表面,或者它可以是中间缓冲区。 它也已预翻译。 只需渲染组件,就好像它位于0,0,宽度为width
,高度为height
。 出于性能原因,您可能希望从Graphics2D对象中读取剪辑,并仅在该空间内进行渲染。- 参数
-
g
- 要绘制的Graphics2D曲面 -
c
- 与绘图事件相关的JComponent。 例如,如果要渲染的区域是Button,则c
将是JButton。 如果绘制的区域是ScrollBarSlider,那么该组件将是JScrollBar。 该值可以为null。 -
width
- 要绘制的区域的宽度。 请注意,在绘制前景的情况下,此值可能与c.getWidth()不同。 -
height
- 要绘制的区域的高度。 请注意,在绘制前景的情况下,此值可能与c.getHeight()不同。 -
extendedCacheKeys
- 调用getExtendedCacheKeys()的结果
-
decodeX
protected final float decodeX(float x)
解码并返回表示给定编码X值的实际像素位置的浮点值。- 参数
-
x
- 编码的x值(0 ... 1,或1 ... 2,或2 ... 3) - 结果
- 解码的x值
- 异常
-
IllegalArgumentException
- 如果是x < 0
或x > 3
-
decodeY
protected final float decodeY(float y)
解码并返回表示给定编码y值的实际像素位置的浮点值。- 参数
-
y
- 编码的y值(0 ... 1,或1 ... 2,或2 ... 3) - 结果
- 解码的y值
- 异常
-
IllegalArgumentException
- 如果是y < 0
或y > 3
-
decodeAnchorX
protected final float decodeAnchorX(float x, float dx)
给定控制点的编码X值,以及从该控制点到锚点的偏移距离,解码并返回表示锚点的实际像素位置的浮点值。- 参数
-
x
-x
控制点的编码x值(0 ... 1,或1 ... 2,或2 ... 3) -
dx
- 从控制点x到锚点的偏移距离 - 结果
- 控制点的解码x位置
- 异常
-
IllegalArgumentException
- 如果是x < 0
或x > 3
-
decodeAnchorY
protected final float decodeAnchorY(float y, float dy)
给定控制点的编码Y值,以及从该控制点到锚点的偏移距离,解码并返回表示锚点的实际像素位置的浮点值。- 参数
-
y
-y
控制点的编码y值(0 ... 1,或1 ... 2,或2 ... 3) -
dy
- 从控制点y到锚点的偏移距离 - 结果
- 控制点的解码y位置
- 异常
-
IllegalArgumentException
- 如果是y < 0
或y > 3
-
decodeColor
protected final Color decodeColor(String key, float hOffset, float sOffset, float bOffset, int aOffset)
解码并返回一种颜色,该颜色源自UI默认值中的基色。- 参数
-
key
- 与UIManager的UI Defaults表中的值对应的键,其中定义了基色 -
hOffset
- 用于派生的色调偏移量。 -
sOffset
- 用于推导的饱和度偏移量。 -
bOffset
- 用于推导的亮度偏移量。 -
aOffset
- 用于派生的alpha偏移量。 在0 ... 255之间 - 结果
- 派生颜色,如果父uiDefault颜色发生变化,其颜色值将更改。
-
decodeColor
protected final Color decodeColor(Color color1, Color color2, float midPoint)
解码并返回一种颜色,该颜色来自两种其他颜色之间的偏移。- 参数
-
color1
- 第一种颜色 -
color2
- 第二种颜色 -
midPoint
- 颜色1和颜色2之间的偏移量,值0.0表示颜色midPoint
表示颜色2; - 结果
- 派生的颜色
-
decodeGradient
protected final LinearGradientPaint decodeGradient(float x1, float y1, float x2, float y2, float[] midpoints, Color[] colors)
给定用于创建LinearGradientPaint的参数,此方法将创建并返回线性渐变绘制。 此方法的一个主要目的是避免创建起点和终点相等的LinearGradientPaint。 在这种情况下,结束y点略微增加以避免重叠。- 参数
-
x1
- x1 -
y1
- y1 -
x2
- x2 -
y2
- y2 -
midpoints
- 中点 -
colors
- 颜色 - 结果
- 一个有效的LinearGradientPaint。 此方法永远不会返回null。
- 异常
-
NullPointerException
- 如果midpoints
数组为null,或者colors
数组为null, -
IllegalArgumentException
- 如果起点和终点是相同的点,或者midpoints.length != colors.length
或colors
大小小于2,或者midpoints
值小于0.0或大于1.0,或者midpoints
严格增加的顺序提供
-
decodeRadialGradient
protected final RadialGradientPaint decodeRadialGradient(float x, float y, float r, float[] midpoints, Color[] colors)
给定用于创建RadialGradientPaint的参数,此方法将创建并返回径向渐变绘制。 此方法的一个主要目的是避免创建半径为非正的RadialGradientPaint。 在这种情况下,半径略微增加以避免0。- 参数
-
x
- x坐标 -
y
- y坐标 -
r
- 半径 -
midpoints
- 中点 -
colors
- 颜色 - 结果
- 一个有效的RadialGradientPaint。 此方法永远不会返回null。
- 异常
-
NullPointerException
- 如果midpoints
数组为空,或colors
数组为空 -
IllegalArgumentException
- 如果r
为非正数,或midpoints.length != colors.length
或colors
小于2,或midpoints
值小于0.0或大于1.0,或midpoints
严格增加的顺序提供
-
getComponentColor
protected final Color getComponentColor(JComponent c, String property, Color defaultColor, float saturationOffset, float brightnessOffset, int alphaOffset)
从给定的JComponent获取颜色属性。 首先检查getXXX()
方法,如果失败则检查具有密钥property
的客户端属性。 如果仍然无法返回颜色,则返回defaultColor
。- 参数
-
c
- 从中获取颜色属性的组件 -
property
- Bean样式属性或客户端属性的名称 -
defaultColor
- 如果未从组件获取颜色,则返回颜色。 -
saturationOffset
- 附加地修改返回颜色的HSB饱和度分量(如果返回默认颜色则忽略)。 -
brightnessOffset
- 附加地修改返回颜色的HSB亮度分量(如果返回默认颜色则忽略)。 -
alphaOffset
- 附加地修改返回颜色的ARGB alpha分量(如果返回默认颜色则忽略)。 - 结果
- 从组件或defaultColor获取的颜色
-
-