- java.lang.Object
-
- javax.swing.plaf.ComponentUI
-
- javax.swing.plaf.ScrollPaneUI
-
- javax.swing.plaf.basic.BasicScrollPaneUI
-
- All Implemented Interfaces:
-
ScrollPaneConstants
- 已知直接子类:
-
MetalScrollPaneUI,SynthScrollPaneUI
public class BasicScrollPaneUI extends ScrollPaneUI implements ScrollPaneConstants
ScrollPaneUI的默认L&F实现。
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 classBasicScrollPaneUI.HSBChangeListener水平滚动条监听器。protected classBasicScrollPaneUI.MouseWheelHandlerMouseWheelHandler是一个实现MouseWheelListener接口的内部类。classBasicScrollPaneUI.PropertyChangeHandler属性更改处理程序classBasicScrollPaneUI.ViewportChangeHandler监听器用于视口事件。classBasicScrollPaneUI.VSBChangeListener垂直卷轴侦听器。
-
Field Summary
Fields Modifier and Type Field 描述 protected ChangeListenerhsbChangeListenerChangeListener安装在水平滚动条上。protected JScrollPanescrollpane实例JScrollPane。protected PropertyChangeListenerspPropertyChangeListenerPropertyChangeListener安装在滚动窗格上。protected ChangeListenerviewportChangeListenerChangeListener安装在视口上。protected ChangeListenervsbChangeListenerChangeListener安装在垂直滚动条上。-
Fields inherited from interface javax.swing.ScrollPaneConstants
COLUMN_HEADER, HORIZONTAL_SCROLLBAR, HORIZONTAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_POLICY, LOWER_LEADING_CORNER, LOWER_LEFT_CORNER, LOWER_RIGHT_CORNER, LOWER_TRAILING_CORNER, ROW_HEADER, UPPER_LEADING_CORNER, UPPER_LEFT_CORNER, UPPER_RIGHT_CORNER, UPPER_TRAILING_CORNER, VERTICAL_SCROLLBAR, VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDED, VERTICAL_SCROLLBAR_NEVER, VERTICAL_SCROLLBAR_POLICY, VIEWPORT
-
-
构造方法摘要
构造方法 Constructor 描述 BasicScrollPaneUI()
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 protected ChangeListenercreateHSBChangeListener()返回水平滚动条ChangeListener一个实例。protected MouseWheelListenercreateMouseWheelListener()创建一个MouseWheelListener的实例,该实例由installUI()添加到JScrollPane中。protected PropertyChangeListenercreatePropertyChangeListener()创建一个PropertyChangeListener的实例,被添加到JScrollPane由installUI()。static ComponentUIcreateUI(JComponent x)返回一个新的实例BasicScrollPaneUI。protected ChangeListenercreateViewportChangeListener()返回视口ChangeListener的实例。protected ChangeListenercreateVSBChangeListener()返回垂直滚动条ChangeListener一个实例。intgetBaseline(JComponent c, int width, int height)返回基线。Component.BaselineResizeBehaviorgetBaselineResizeBehavior(JComponent c)返回一个枚举,指示组件的基线如何随着大小的变化而改变。DimensiongetMaximumSize(JComponent c)返回指定组件的最大尺寸,适合外观和感觉。protected voidinstallDefaults(JScrollPane scrollpane)安装默认属性。protected voidinstallKeyboardActions(JScrollPane c)注册键盘操作。protected voidinstallListeners(JScrollPane c)注册听众。voidinstallUI(JComponent x)适当地配置指定的组件的外观和感觉。voidpaint(Graphics g, JComponent c)适当地涂抹指定的组件的外观和感觉。protected voidsyncScrollPaneWithViewport()将JScrollPane与Viewport同步。protected voiduninstallDefaults(JScrollPane c)卸载默认属性。protected voiduninstallKeyboardActions(JScrollPane c)取消注册键盘操作。protected voiduninstallListeners(JComponent c)取消注册听众。voiduninstallUI(JComponent c)在installUI反转在指定组件上完成的配置。protected voidupdateColumnHeader(PropertyChangeEvent e)更新列标题。protected voidupdateRowHeader(PropertyChangeEvent e)更新行标题。protected voidupdateScrollBarDisplayPolicy(PropertyChangeEvent e)更新滚动条显示策略。protected voidupdateViewport(PropertyChangeEvent e)更新视口。-
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getMinimumSize, getPreferredSize, update
-
-
-
-
字段详细信息
-
scrollpane
protected JScrollPane scrollpane
实例JScrollPane。
-
vsbChangeListener
protected ChangeListener vsbChangeListener
ChangeListener安装在垂直滚动条上。
-
hsbChangeListener
protected ChangeListener hsbChangeListener
ChangeListener安装在水平滚动条上。
-
viewportChangeListener
protected ChangeListener viewportChangeListener
ChangeListener安装在视口上。
-
spPropertyChangeListener
protected PropertyChangeListener spPropertyChangeListener
PropertyChangeListener安装在滚动窗格上。
-
-
方法详细信息
-
createUI
public static ComponentUI createUI(JComponent x)
返回一个新的实例BasicScrollPaneUI。- 参数
-
x- 一个组件。 - 结果
-
一个新的例子
BasicScrollPaneUI
-
paint
public void paint(Graphics g, JComponent c)
描述从类复制:ComponentUI适当地涂抹指定的组件的外观和感觉。 当指定的组件被绘制时,将从ComponentUI.update方法调用此方法。 子类应该覆盖此方法,并使用指定的Graphics对象来呈现组件的内容。- 重写:
-
paint在ComponentUI - 参数
-
g- 要绘画的Graphics上下文 -
c- 正在涂漆的部件; 这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用 - 另请参见:
-
ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)
-
getMaximumSize
public Dimension getMaximumSize(JComponent c)
描述从类复制:ComponentUI返回指定组件的最大尺寸,适合外观和感觉。 如果返回null,则最大大小将由组件的布局管理器计算(这是安装了特定布局管理器的任何组件的首选方法)。 此方法的默认实现将调用getPreferredSize并返回该值。- 重写:
-
getMaximumSize在ComponentUI - 参数
-
c- 查询最大大小的组件; 这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用 - 结果
- 新维度(Short.MAX_VALUE,Short.MAX_VALUE)
- 另请参见:
-
JComponent.getMaximumSize(),LayoutManager2.maximumLayoutSize(java.awt.Container)
-
installDefaults
protected void installDefaults(JScrollPane scrollpane)
安装默认属性。- 参数
-
scrollpane-实例JScrollPane
-
installListeners
protected void installListeners(JScrollPane c)
注册听众。- 参数
-
c-实例JScrollPane
-
installKeyboardActions
protected void installKeyboardActions(JScrollPane c)
注册键盘操作。- 参数
-
c-实例JScrollPane
-
installUI
public void installUI(JComponent x)
描述从类复制:ComponentUI适当地配置指定的组件的外观和感觉。 当正在安装ComponentUI实例作为指定组件上的UI委托时,将调用此方法。 该方法应该完全配置组件的外观,包括以下内容:- 为组件上的颜色,字体,边框,图标,不透明度等安装默认属性值。 只要有可能,由客户端程序初始化的属性值不应该被重写。
- 如有必要,请在组件上安装
LayoutManager。 - 创建/添加任何所需的子组件到组件。
- 在组件上创建/安装事件监听器。
- 在组件上创建/安装
PropertyChangeListener,以便适当地检测和响应组件属性更改。 - 在组件上安装键盘UI(助记符,遍历等)。
- 初始化任何适当的实例数据。
- 重写:
-
installUI在ComponentUI - 参数
-
x- 正在安装此UIx的组件 - 另请参见:
-
ComponentUI.uninstallUI(javax.swing.JComponent),JComponent.setUI(javax.swing.plaf.ComponentUI),JComponent.updateUI()
-
uninstallDefaults
protected void uninstallDefaults(JScrollPane c)
卸载默认属性。- 参数
-
c-实例JScrollPane
-
uninstallListeners
protected void uninstallListeners(JComponent c)
取消注册听众。- 参数
-
c- 一个组件
-
uninstallKeyboardActions
protected void uninstallKeyboardActions(JScrollPane c)
取消注册键盘操作。- 参数
-
c-实例JScrollPane
-
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()
-
syncScrollPaneWithViewport
protected void syncScrollPaneWithViewport()
同步JScrollPane与Viewport。
-
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)
-
createViewportChangeListener
protected ChangeListener createViewportChangeListener()
返回视口ChangeListener的实例。- 结果
-
视口
ChangeListener一个实例
-
createHSBChangeListener
protected ChangeListener createHSBChangeListener()
返回水平滚动条ChangeListener的实例。- 结果
-
水平滚动条
ChangeListener一个实例
-
createVSBChangeListener
protected ChangeListener createVSBChangeListener()
返回垂直滚动条ChangeListener的实例。- 结果
-
垂直滚动条
ChangeListener一个实例
-
createMouseWheelListener
protected MouseWheelListener createMouseWheelListener()
创建一个MouseWheelListener的实例,该实例由installUI()添加到JScrollPane中。 返回的MouseWheelListener用于处理鼠标滚轮驱动滚动。- 结果
- 实现轮驱动滚动的MouseWheelListener
- 从以下版本开始:
- 1.4
- 另请参见:
-
installUI(javax.swing.JComponent),BasicScrollPaneUI.MouseWheelHandler
-
updateScrollBarDisplayPolicy
protected void updateScrollBarDisplayPolicy(PropertyChangeEvent e)
更新滚动条显示策略。- 参数
-
e- 财产变更事件
-
updateViewport
protected void updateViewport(PropertyChangeEvent e)
更新视口。- 参数
-
e- 物业变更事件
-
updateRowHeader
protected void updateRowHeader(PropertyChangeEvent e)
更新行标题。- 参数
-
e- 物业变更事件
-
updateColumnHeader
protected void updateColumnHeader(PropertyChangeEvent e)
更新列标题。- 参数
-
e- 物业变更事件
-
createPropertyChangeListener
protected PropertyChangeListener createPropertyChangeListener()
创建一个PropertyChangeListener的实例,被添加到JScrollPane由installUI()。 子类可以覆盖此方法以返回自定义的PropertyChangeListener,例如class MyScrollPaneUI extends BasicScrollPaneUI { protected PropertyChangeListener createPropertyChangeListener() { return new MyPropertyChangeListener(); } public class MyPropertyChangeListener extends PropertyChangeListener { public void propertyChange(PropertyChangeEvent e) { if (e.getPropertyName().equals("viewport")) { // do some extra work when the viewport changes } super.propertyChange(e); } } }- 结果
-
一个
PropertyChangeListener - 另请参见:
-
PropertyChangeListener,installUI(javax.swing.JComponent)
-
-