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.AccessibleJComponentContainer.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_ALIGNMENTABORT, 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类