public class JViewport extends JComponent implements Accessible
默认情况下, JViewport
是不透明的。 要更改此,请使用setOpaque
方法。
注意:我们实现了一个更快的滚动算法,不需要缓冲区来绘制。算法的工作原理如下:
JComponents
,如果不是,停止并重绘整个视口。 Window
的图形,并在滚动区域上做一个copyArea
。 copyArea
。
与非后备店相比,这种方法将大大减少涂漆区域。
当视口被另一个窗口或部分屏幕遮挡时,这种方法可能导致比后备存储方法更慢的时间。 当另一个窗口遮蔽视口时,copyArea将复制垃圾,系统将生成一个绘画事件,以通知我们我们需要绘制新曝光的区域。 处理这种情况的唯一方法是重绘整个视口,这可能会导致比后备存储盒慢的性能。 在大多数应用程序中,当视口被另一个窗口或屏幕遮挡时,用户很少会滚动,所以这种优化通常在被遮蔽时是值得的。
警告: Swing不是线程安全的。 有关更多信息,请参阅Swing's Threading Policy 。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4版本开始,所有JavaBeans的长期存储支持已被添加到java.beans
软件包中。 请参阅XMLEncoder
。
JScrollPane
Modifier and Type | Class and Description |
---|---|
protected class |
JViewport.AccessibleJViewport
这个类实现了可访问性支持
JViewport 类。
|
protected class |
JViewport.ViewListener
视图的监听器。
|
JComponent.AccessibleJComponent
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Modifier and Type | Field and Description |
---|---|
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
当确定视口尺寸时为真。
|
protected Point |
lastPaintPosition
最后一个
viewPosition ,我们已经画了,所以我们知道多少后备店的图像是有效的。
|
protected boolean |
scrollUnderway
scrollUnderway 标志用于JList等
JList 。
|
static int |
SIMPLE_SCROLL_MODE
此模式使用非常简单的方式,每次滚动时重新绘制滚动窗格的全部内容。
|
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
JViewport()
创建一个
JViewport 。
|
Modifier and Type | Method and Description |
---|---|
void |
addChangeListener(ChangeListener l)
每当视图的大小,位置或视口的范围大小发生更改时,
ChangeListener 添加到列表中。
|
protected void |
addImpl(Component child, Object constraints, int index)
设置
JViewport 的一个轻量级的孩子,可以是
null 。
|
void |
addNotify()
通知此组件它现在有一个父组件。
|
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)
返回一个
Insets 这个
JViewport 的插入值的
Insets 对象。
|
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平台v1.3开始,由
getScrollMode() 。
|
boolean |
isOptimizedDrawingEnabled()
JViewport 覆盖此方法的默认实现(在
JComponent )以返回false。
|
protected boolean |
isPaintingOrigin()
如果滚动模式是一个
BACKINGSTORE_SCROLL_MODE ,使绘画起源于
JViewport 或其祖先之一,则返回true。
|
void |
paint(Graphics g)
根据是否启用
backingStore ,可以通过后台存储来绘制图像,也可以仅绘制最近曝光的部分,使用后备存储将“其余部分”设置为“blit”。
|
protected String |
paramString()
返回此
JViewport 的字符串表示
JViewport 。
|
void |
remove(Component child)
删除
Viewport 的一个轻量级的孩子。
|
void |
removeChangeListener(ChangeListener l)
每次视图大小,位置或视口扩展区大小更改时,
ChangeListener 从列表中删除
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 内的
Rectangle 变得可见。
|
void |
setBackingStoreEnabled(boolean enabled)
已弃用
从Java 2平台v1.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属性重置为当前外观的值。
|
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, revalidate, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
protected boolean isViewSizeSet
protected Point lastPaintPosition
viewPosition
,我们画了,所以我们知道多少后备店的图像是有效的。
@Deprecated protected boolean backingStore
false
。
setScrollMode(int)
protected transient Image backingStoreImage
protected boolean scrollUnderway
scrollUnderway
标志用于JList等JList
。
当DownArrow中文按键上JList
以及选择小区在列表的最后,该scrollpane
autoscrolls。
在这里,旧的选定单元格需要重新绘制,因此我们需要一个标志,使视口仅在显示调用setViewPosition(Point)
时进行setViewPosition(Point)
。
当通过其他路由调用setBounds
时,标志关闭,视图正常显示。
另一种方法是将其从JViewport
类中删除,并通过使用setBackingStoreEnabled
JList
管理setBackingStoreEnabled
。
默认值为false
。
public static final int BLIT_SCROLL_MODE
graphics.copyArea
实现滚动。
这是大多数应用程序中最快的。
setScrollMode(int)
,
Constant Field Values
public static final int BACKINGSTORE_SCROLL_MODE
JTable
。
在某些情况下,此模式可能会优于“blit模式”,但它需要大量额外的RAM。
setScrollMode(int)
,
Constant Field Values
public static final int SIMPLE_SCROLL_MODE
setScrollMode(int)
,
Constant Field Values
public ViewportUI getUI()
ViewportUI
对象
public void setUI(ViewportUI ui)
ui
-
ViewportUI
L&F对象
UIDefaults.getUI(javax.swing.JComponent)
public void updateUI()
updateUI
在
JComponent
JComponent.updateUI()
public String getUIClassID()
getUIClassID
在
JComponent
JComponent.getUIClassID()
,
UIDefaults.getUI(javax.swing.JComponent)
protected void addImpl(Component child, Object constraints, int index)
JViewport
的一个轻量级的孩子,可以是null
。
(由于只有一个孩子占据整个视口, constraints
和index
参数将被忽略。)
addImpl
在
Container
child
- 视口的轻量级
child
constraints
-在
constraints
被尊重
index
- 指数
setView(java.awt.Component)
public void remove(Component child)
Viewport
的一个轻量级的孩子。
remove
在
Container
类
child
- 要删除的组件
setView(java.awt.Component)
public void addNotify()
JComponent
KeyboardAction
事件侦听器。
该方法在内部被工具包调用,不应该被程序直接调用。
public void scrollRectToVisible(Rectangle contentRect)
Rectangle
内的Rectangle
变得可见。
如果视图当前无效, isValid
尝试在滚动之前验证视图 - isValid
返回false。 为避免在创建包含层次结构时进行过度验证,如果其中一个祖先没有对等体,或者没有验证的根祖先,或者其中一个祖先不是Window
或Applet
,则不会验证。
请注意,此方法不会滚动到有效的视口之外; 例如,如果contentRect
大于视口,则滚动将仅限于视口的边界。
scrollRectToVisible
在
JComponent
contentRect
- 要显示的
Rectangle
JComponent.isValidateRoot()
,
Component.isValid()
,
Component.getPeer()
public final void setBorder(Border border)
null
边框或非零插值,以防止此组件的几何变得足够复杂以阻止子类化。
要创建具有边框的JViewport
,请将其添加到具有边框的JPanel
。
注意:如果border
是非null
,该方法将抛出一个异常上不支持边框上JViewPort
。
setBorder
在
JComponent
border
- 要设置的
Border
IllegalArgumentException
- 此方法未实现
Border
, CompoundBorder
public final Insets getInsets()
JViewport
作为(0,0,0,0)
JViewport
。
getInsets
在
JComponent
Rectangle
的Rectangle
setBorder(javax.swing.border.Border)
public final Insets getInsets(Insets insets)
Insets
对象,其中包含这个JViewport
的插入值。
传入的Insets
对象将被重新初始化,并且该对象内的所有现有值都将被覆盖。
getInsets
在
JComponent
insets
- 可重复使用的
Insets
对象
getInsets()
public boolean isOptimizedDrawingEnabled()
JViewport
覆盖此方法的默认实现( JComponent
)返回false。
这确保了绘图机器将调用Viewport
的paint
实现,而不是直接JViewport
的孩子。
isOptimizedDrawingEnabled
在
JComponent
protected boolean isPaintingOrigin()
BACKINGSTORE_SCROLL_MODE
,使绘画来源于JViewport
或其祖先之一,则返回true。
否则返回false
。
isPaintingOrigin
在
JComponent
类
BACKINGSTORE_SCROLL_MODE
。
JComponent.isPaintingOrigin()
public void paint(Graphics g)
backingStore
,可以通过后台存储来绘制图像,也可以仅绘制最近曝光的部分,使用后备存储将其余部分“blit”。
The term "blit" is the pronounced version of the PDP-10 BLT (BLock Transfer) instruction, which copied a block of bits. (In case you were curious.)
public void reshape(int x, int y, int w, int h)
StateChanged
一个StateChanged
事件。
reshape
在
JComponent
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
。
true
如果
scrollMode
是
BACKINGSTORE_SCROLL_MODE
@Deprecated public void setBackingStoreEnabled(boolean enabled)
setScrollMode()
。
viewPosition
。
而不是重绘整个视口,我们使用Graphics.copyArea
来实现一些滚动。
enabled
- 如果是真的,请维护一个非屏幕后备店
public Component getView()
JViewport
的一个孩子或
null
。
null
setView(java.awt.Component)
public void setView(Component view)
JViewport
的一个轻便孩子(
view
),可以是
null
。
view
- 视口的新的轻量级的孩子
getView()
public Dimension getViewSize()
Dimension
视图大小的
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
- 水平三角形
dy
- 垂直三角洲
blitFrom
-
Point
我们是从
Point
blitTo
-
Point
我们是blitting
blitSize
- 该地区的
Dimension
blitPaint
- 区域blit
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
视图大小的
Dimension
对象
protected JViewport.ViewListener createViewListener()
ViewListener
protected LayoutManager createLayoutManager()
null
)。
返回LayoutManager
安装在JViewport
。
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
从列表中删除
ChangeListener
。
l
- 要删除的
ChangeListener
addChangeListener(javax.swing.event.ChangeListener)
public ChangeListener[] getChangeListeners()
ChangeListener
的数组。
ChangeListener
或者如果没有添加侦听器,则为空数组
protected void fireStateChanged()
ChangeListeners
。
public void repaint(long tm, int x, int y, int w, int h)
RepaintManager
。
repaint
在
JComponent
tm
- 更新前的最大时间(以毫秒为单位)
x
-
x
坐标(从左上方的像素)
y
-
y
坐标(从上至下的像素)
w
- 宽度
h
- 高度
Component.update(java.awt.Graphics)
protected String paramString()
JViewport
的字符串表示JViewport
。
该方法仅用于调试目的,并且返回的字符串的内容和格式可能因实现而异。
返回的字符串可能为空,但可能不是null
。
paramString
在
JComponent
JViewport
的字符串表示
JViewport
protected void firePropertyChange(String propertyName, Object oldValue, Object newValue)
windowBlit
属性。
( putClientProperty
属性是最终的)。
firePropertyChange
在
Component
propertyName
- 包含属性名称的字符串
oldValue
- 该物业的旧值
newValue
- 物业的新价值
public AccessibleContext getAccessibleContext()
getAccessibleContext
在接口
Accessible
getAccessibleContext
在
Component
类