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.AccessibleAWTContainerComponent.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_WINDOWaccessibleContext, 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, updateadd, 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, validateTreeaction, 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, transferFocusUpCycleprotected 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类
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.