|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.JViewport
public class JViewport
用于查看底层信息的“视口”或“观察孔”。在滚动时,移动部分称为视口。这好像通过照相机的取景器进行查看。将取景器向上移动会将图片顶部的内部移入视野,而底部的内容将消失。
默认情况下,JViewport
是不透明的。要进行更改,请使用 setOpaque
方法。
注:我们已实现了更快的滚动算法,不需要引入缓存。该算法的工作方式如下:
JComponents
,如果不是,则停止,然后重绘整个视口。 Window
的图形,并在滚动区域上执行 copyArea
。 copyArea
的开销。与非后备存储情况相比,此方法将大大减少绘制的区域。
当视口被另一窗口遮掩或者部分在屏幕外时,此方法比后备存储方法更慢。当另一窗口遮掩该视口时,copyArea 将复制垃圾,并且系统将生成一个绘制事件,通知我们绘制新露出的区域。处理这一情况的惟一方法是重绘整个视口,这可能比后备存储情形的速度要慢。在多数应用程序中,在视口被另一窗口遮掩或在屏幕外时,用户很少滚动它,因此,在被遮掩时,通常值得使用这一优化来提高性能。
警告:Swing 不是线程安全的。有关更多信息,请参阅 Swing's Threading Policy。
警告:此类的序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同 Swing 版本的应用程序之间进行 RMI(Remote Method Invocation,远程方法调用)。从 1.4 版本开始,已在 java.beans
包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder
。
JScrollPane
嵌套类摘要 | |
---|---|
protected class |
JViewport.AccessibleJViewport 此类实现对 JViewport 类的可访问性支持。 |
protected class |
JViewport.ViewListener 视图的侦听器。 |
从类 javax.swing.JComponent 继承的嵌套类/接口 |
---|
JComponent.AccessibleJComponent |
从类 java.awt.Container 继承的嵌套类/接口 |
---|
Container.AccessibleAWTContainer |
从类 java.awt.Component 继承的嵌套类/接口 |
---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
字段摘要 | |
---|---|
protected boolean |
backingStore 已过时。 从 Java 2 平台 v1.3 开始 |
static int |
BACKINGSTORE_SCROLL_MODE 将视口内容拉入屏幕外图像。 |
protected Image |
backingStoreImage 用于后备存储的视图图像。 |
static int |
BLIT_SCROLL_MODE 使用 graphics.copyArea 来实现滚动。 |
protected boolean |
isViewSizeSet 在确定视口的维数后为 true。 |
protected Point |
lastPaintPosition 我们绘制的最后一个 viewPosition ,因此我们知道有多少有效的后备存储图像。 |
protected boolean |
scrollUnderway scrollUnderway 标志用于 JList 之类的组件。 |
static int |
SIMPLE_SCROLL_MODE 此模式使用非常简单的方法,在 scrollpane 每次滚动时重绘它的整个内容。 |
从类 javax.swing.JComponent 继承的字段 |
---|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
从类 java.awt.Component 继承的字段 |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
从接口 java.awt.image.ImageObserver 继承的字段 |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
构造方法摘要 | |
---|---|
JViewport() 创建一个 JViewport 。 |
方法摘要 | |
---|---|
void |
addChangeListener(ChangeListener l) 将一个 ChangeListener 添加到每次在视图的大小、位置或视口的扩展大小更改时都会得到通知的列表。 |
protected void |
addImpl(Component child, Object constraints, int index) 设置 JViewport 的轻量子对象,可以为 null 。 |
protected boolean |
computeBlit(int dx, int dy, Point blitFrom, Point blitTo, Dimension blitSize, Rectangle blitPaint) 计算 blit 的参数,其中后备存储图像当前在左上角包含 oldLoc ,并且我们滚动到 newLoc 。 |
protected LayoutManager |
createLayoutManager() 子类可以重写此方法以在该构造方法中安装一个不同布局的管理器(或者为 null )。 |
protected JViewport.ViewListener |
createViewListener() 为该视图创建侦听器。 |
protected void |
firePropertyChange(String propertyName, Object oldValue, Object newValue) 通知侦听器发生的属性更改。 |
protected void |
fireStateChanged() 在视图的大小、位置或视口的扩展大小更改时通知所有 ChangeListeners 。 |
AccessibleContext |
getAccessibleContext() 获取与此 JViewport 关联的 AccessibleContext。 |
ChangeListener[] |
getChangeListeners() 返回使用 addChangeListener() 添加到此 JViewport 的所有 ChangeListener 的数组。 |
Dimension |
getExtentSize() 返回视图坐标中视图的可见部分的大小。 |
Insets |
getInsets() 返回 inset(边框)维数 (0,0,0,0),因为在 JViewport 上不支持边框。 |
Insets |
getInsets(Insets insets) 返回包含此 JViewport 的 inset 值的 inset 对象。 |
int |
getScrollMode() 返回当前的滚动模式。 |
ViewportUI |
getUI() 返回呈现此组件的 L&F 对象。 |
String |
getUIClassID() 返回指定呈现此组件的 L&F 类名称的字符串。 |
Component |
getView() 返回 JViewport 的一个子对象或 null 。 |
Point |
getViewPosition() 返回显示在视口左上角的视图坐标,如果不存在视图,则返回(0,0)。 |
Rectangle |
getViewRect() 返回一个矩形,其原位置在 getViewPosition ,大小为 getExtentSize 。 |
Dimension |
getViewSize() 如果未显式设置视图的大小,则返回首选大小,否则返回该视图的当前大小。 |
boolean |
isBackingStoreEnabled() 已过时。 从 Java 2 平台 1.3 版开始,由 getScrollMode() 取代。 |
boolean |
isOptimizedDrawingEnabled() JViewport 重写此方法(在 JComponent 中返回 false)的默认实现。 |
void |
paint(Graphics g) 通过后备存储绘制图像,或者使用后备存储“位图传送”剩余图像来仅绘制最新暴露的部分,这具体取决于是否启用 backingStore 。 |
protected String |
paramString() 返回此 JViewport 的字符串表示形式。 |
void |
remove(Component child) 移除 Viewport 的一个轻量子对象。 |
void |
removeChangeListener(ChangeListener l) 从每次在视图的大小、位置或视口的扩展大小更改时都会得到通知的列表中移除 ChangeListener 。 |
void |
repaint(long tm, int x, int y, int w, int h) 始终在父坐标系统中重绘,以确保 RepaintManager 仅执行一种绘制方法。 |
void |
reshape(int x, int y, int w, int h) 设置此视口的边界。 |
void |
scrollRectToVisible(Rectangle contentRect) 滚动该视图,使该视图中的 Rectangle 变得可见。 |
void |
setBackingStoreEnabled(boolean enabled) 已过时。 从 Java 2 平台 1.3 版开始,由 setScrollMode() 取代。 |
void |
setBorder(Border border) 视口通过常规父/子剪贴(一般该视图向滚动的相反方向移动)“滚动”其子视口(称为“视图”)。 |
void |
setExtentSize(Dimension newExtent) 使用视图坐标设置该视图可见部分的大小。 |
void |
setScrollMode(int mode) 用于控制滚动视口内容的方法。 |
void |
setUI(ViewportUI ui) 设置呈现此组件的 L&F 对象。 |
void |
setView(Component view) 设置 JViewport 的一个轻量子对象 (view ),可以为 null 。 |
void |
setViewPosition(Point p) 设置显示在视口左上角的视图坐标,如果不存在视图,则不执行任何操作。 |
void |
setViewSize(Dimension newSize) 设置视图的大小。 |
Dimension |
toViewCoordinates(Dimension size) 将一个大小的像素坐标转换为视图坐标。 |
Point |
toViewCoordinates(Point p) 将一个点的像素坐标转换为视图坐标。 |
void |
updateUI() 将 UI 属性重置为当前外观的值。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
字段详细信息 |
---|
protected boolean isViewSizeSet
protected Point lastPaintPosition
viewPosition
,因此我们知道有多少有效的后备存储图像。
@Deprecated protected boolean backingStore
false
。
setScrollMode(int)
protected transient Image backingStoreImage
protected boolean scrollUnderway
scrollUnderway
标志用于
JList
之类的组件。当在
JList
上按下向下箭头且所选单元格是列表中的最后一个单元格时,
scrollpane
将自动滚动。这里,以前选中的单元格需要进行重绘,因此我们需要一个标志让该视口仅在存在对
setViewPosition(Point)
的显式调用时执行优化的绘制。当通过其他途径调用
setBounds
时,该标志关闭并且该视图按常规方法重绘。另一种方法是从
JViewport
类中移除此标志,并让
JList
通过使用
setBackingStoreEnabled
管理此情形。默认值为
false
。
public static final int BLIT_SCROLL_MODE
graphics.copyArea
来实现滚动。对多数应用程序而言,这是最快的方法。
setScrollMode(int)
,
常量字段值
public static final int BACKINGSTORE_SCROLL_MODE
JTable
的默认模式。在某些情况下,此模式优于“位图传送模式”,但它需要大量的额外内存。
setScrollMode(int)
,
常量字段值
public static final int SIMPLE_SCROLL_MODE
setScrollMode(int)
,
常量字段值
构造方法详细信息 |
---|
public JViewport()
JViewport
。
方法详细信息 |
---|
public ViewportUI getUI()
ViewportUI
对象
public void setUI(ViewportUI ui)
ui
-
ViewportUI
L&F 对象
UIDefaults.getUI(javax.swing.JComponent)
public void updateUI()
JComponent
中的
updateUI
JComponent.updateUI()
public String getUIClassID()
JComponent
中的
getUIClassID
JComponent.getUIClassID()
,
UIDefaults.getUI(javax.swing.JComponent)
protected void addImpl(Component child, Object constraints, int index)
JViewport
的轻量子对象,可以为
null
。(由于只存在一个占用整个视口的子对象,因此忽略
constraints
和
index
参数。)
Container
中的
addImpl
child
- 视口的轻量
child
constraints
- 要考虑的
constraint
index
- 索引
setView(java.awt.Component)
public void remove(Component child)
Viewport
的一个轻量子对象。
Container
中的
remove
child
- 要移除的组件
setView(java.awt.Component)
public void scrollRectToVisible(Rectangle contentRect)
Rectangle
变得可见。
如果视图当前无效,则此操作将尝试在滚动前验证该视图 - isValid
返回 false。为避免在创建包含层次结构时验证时间过长,如果祖先之一没有同位体,或者不存在有效的根祖先,或者祖先之一不是 Window
或 Applet
,则不进行验证。
注意,此方法不会滚动到有效视口之外;例如,如果 contentRect
大于视口,滚动操作将限制在视口的边界之内。
JComponent
中的
scrollRectToVisible
contentRect
- 要显示的
Rectangle
JComponent.isValidateRoot()
,
Component.isValid()
,
Component.getPeer()
public final void setBorder(Border border)
null
边框或非零 inset,以防止此组件的几何结构复杂得无法禁止创建子类。要创建带边框的
JViewport
,请将其添加到具有边框的
JPanel
。
注:如果 border
为非 null
,此方法将抛出一个异常,原因是在 JViewPort
上不支持边框。
JComponent
中的
setBorder
border
- 要设置的
Border
IllegalArgumentException
- 未实现此方法
Border
,
CompoundBorder
public final Insets getInsets()
JViewport
上不支持边框。
JComponent
中的
getInsets
Rectange
setBorder(javax.swing.border.Border)
public final Insets getInsets(Insets insets)
JViewport
的 inset 值的
inset
对象。重新初始化传入的
inset
对象,此对象中所有现有值都将被重写。
JComponent
中的
getInsets
insets
- 可以重用的
inset
对象
getInsets()
public boolean isOptimizedDrawingEnabled()
JViewport
重写此方法(在
JComponent
中返回 false)的默认实现。这确保了绘制机制将调用
Viewport
的
paint
实现,而不是直接通知
JViewport
的子对象。
JComponent
中的
isOptimizedDrawingEnabled
public void paint(Graphics g)
backingStore
。
术语“位图传送”是 PDP-10 BLT (BLock Transfer) 指令的 pronounced 版,该指令复制位块。(在您感到好奇时。)
JComponent
中的
paint
g
- 要在其中进行绘制的
Graphics
上下文
JComponent.paintComponent(java.awt.Graphics)
,
JComponent.paintBorder(java.awt.Graphics)
,
JComponent.paintChildren(java.awt.Graphics)
,
JComponent.getComponentGraphics(java.awt.Graphics)
,
JComponent.repaint(long, int, int, int, int)
public void reshape(int x, int y, int w, int h)
StateChanged
事件。
JComponent
中的
reshape
x
- 原视口的左边缘
y
- 原视口的上边缘
w
- 以像素为单位的宽度
h
- 以像素为单位的高度
JComponent.reshape(int, int, int, int)
public void setScrollMode(int mode)
mode
- 下列值之一:
BLIT_SCROLL_MODE
,
BACKINGSTORE_SCROLL_MODE
,
SIMPLE_SCROLL_MODE
public int getScrollMode()
scrollMode
属性
setScrollMode(int)
@Deprecated public boolean isBackingStoreEnabled()
getScrollMode()
取代。
true
。
scrollMode
为
BACKINGSTORE_SCROLL_MODE
,则返回
true
@Deprecated public void setBackingStoreEnabled(boolean enabled)
setScrollMode()
取代。
viewPosition
的较小一维更改的成本。我们使用
Graphics.copyArea
实现某些滚动,而不是重绘整个视口。
enabled
- 如果为 true,则维持一个屏幕外后备存储
public Component getView()
JViewport
的一个子对象或
null
。
null
setView(java.awt.Component)
public void setView(Component view)
JViewport
的一个轻量子对象 (
view
),可以为
null
。
view
- 该视口的新轻量子对象
getView()
public Dimension getViewSize()
Dimension
对象
public void setViewSize(Dimension newSize)
newSize
- 指定视图新大小的
Dimension
对象
public Point getViewPosition()
Point
对象
public void setViewPosition(Point p)
p
- 给出左上角坐标的
Point
对象
public Rectangle getViewRect()
getViewPosition
,大小为
getExtentSize
。这是视图在视图坐标中的可见部分。
Rectangle
。
protected boolean computeBlit(int dx, int dy, Point blitFrom, Point blitTo, Dimension blitSize, Rectangle blitPaint)
oldLoc
,并且我们滚动到
newLoc
。已修改该参数以返回 blit 所需的值。
dx
- 水平 delta
dy
- 垂直 delta
blitFrom
- 我们从中传送的
Point
blitTo
- 我们传送的
Point
blitSize
- 要传送的区域的
Dimension
blitPaint
- 要传送的区域
public Dimension getExtentSize()
Dimension
对象
public Dimension toViewCoordinates(Dimension size)
size
- 使用像素坐标的
Dimension
对象
Dimension
对象
public Point toViewCoordinates(Point p)
p
- 使用像素坐标的
Point
对象
Point
对象
public void setExtentSize(Dimension newExtent)
newExtent
- 指定视图大小的
Dimension
对象
protected JViewport.ViewListener createViewListener()
ViewListener
protected LayoutManager createLayoutManager()
null
)。返回要在
JViewport
上安装的
LayoutManager
。
LayoutManager
public void addChangeListener(ChangeListener l)
ChangeListener
添加到每次在视图的大小、位置或视口的扩展大小更改时都会得到通知的列表。
l
- 要添加的
ChangeListener
removeChangeListener(javax.swing.event.ChangeListener)
,
setViewPosition(java.awt.Point)
,
setViewSize(java.awt.Dimension)
,
setExtentSize(java.awt.Dimension)
public void removeChangeListener(ChangeListener l)
ChangeListener
。
l
- 要移除的
ChangeListener
addChangeListener(javax.swing.event.ChangeListener)
public ChangeListener[] getChangeListeners()
ChangeListener
的数组。
ChangeListener
,如果未添加侦听器,则返回一个空数组
protected void fireStateChanged()
ChangeListeners
。
addChangeListener(javax.swing.event.ChangeListener)
,
removeChangeListener(javax.swing.event.ChangeListener)
,
EventListenerList
public void repaint(long tm, int x, int y, int w, int h)
RepaintManager
仅执行一种绘制方法。
JComponent
中的
repaint
tm
- 更新前等待的最长时间(以毫秒为单位)
x
-
x
坐标(像素从左端向上)
y
-
y
坐标(像素从顶部向下)
w
- 宽度
h
- 高度
Component.update(java.awt.Graphics)
protected String paramString()
JViewport
的字符串表示形式。此方法仅在进行调试的时候使用,对于各个实现,所返回字符串的内容和格式可能有所不同。返回的字符串可能为空,但不可能为
null
。
JComponent
中的
paramString
JViewport
的字符串表示形式
protected void firePropertyChange(String propertyName, Object oldValue, Object newValue)
windowBlit
属性。(
putClientProperty
属性为最后属性)。
Component
中的
firePropertyChange
propertyName
- 包含属性名的字符串
oldValue
- 属性的旧值
newValue
- 属性的新值
public AccessibleContext getAccessibleContext()
Accessible
中的
getAccessibleContext
JComponent
中的
getAccessibleContext
|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。