JavaTM Platform
Standard Ed. 6

javax.swing
类 JViewport

java.lang.Object
  继承者 java.awt.Component
      继承者 java.awt.Container
          继承者 javax.swing.JComponent
              继承者 javax.swing.JViewport
所有已实现的接口:
ImageObserver, MenuContainer, Serializable, Accessible

public class JViewport
extends JComponent
implements Accessible

用于查看底层信息的“视口”或“观察孔”。在滚动时,移动部分称为视口。这好像通过照相机的取景器进行查看。将取景器向上移动会将图片顶部的内部移入视野,而底部的内容将消失。

默认情况下,JViewport 是不透明的。要进行更改,请使用 setOpaque 方法。

注:我们已实现了更快的滚动算法,不需要引入缓存。该算法的工作方式如下:

  1. 检查视图和父视图,了解它们是否为 JComponents,如果不是,则停止,然后重绘整个视口。
  2. 如果视口由祖先遮掩,则停止,然后重绘整个视口。
  3. 计算将变为可见的区域,如果可见区域的大小与视口一样,则停止,然后重绘整个视图区域。
  4. 获取祖先 Window 的图形,并在滚动区域上执行 copyArea
  5. 传递视图消息以重绘新的可见区域。
  6. 下次绘制将在视口上调用,如果剪贴区域小于视口大小,将开始使用计时器重绘整个区域。
一般情况下,此方法相当快。与后备存储方法相比,这避免了维护屏幕外缓冲区和必须执行两个 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 属性重置为当前外观的值。
 
从类 javax.swing.JComponent 继承的方法
addAncestorListener, addNotify, 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, 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
 
从类 java.awt.Container 继承的方法
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, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
从类 java.awt.Component 继承的方法
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, hide, 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, transferFocusUpCycle
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

isViewSizeSet

protected boolean isViewSizeSet
在确定视口的维数后为 true。默认值为 false。


lastPaintPosition

protected Point lastPaintPosition
我们绘制的最后一个 viewPosition,因此我们知道有多少有效的后备存储图像。


backingStore

@Deprecated
protected boolean backingStore
已过时。 从 Java 2 平台 v1.3 开始
当此视口正在维护其内容的一个屏幕外图像时,将为 true,这样可以使用快速的“位图传送”操作执行一些滚动,而不用通过视图对象来构造此显示。默认值为 false

另请参见:
setScrollMode(int)

backingStoreImage

protected transient Image backingStoreImage
用于后备存储的视图图像。


scrollUnderway

protected boolean scrollUnderway
scrollUnderway 标志用于 JList 之类的组件。当在 JList 上按下向下箭头且所选单元格是列表中的最后一个单元格时,scrollpane 将自动滚动。这里,以前选中的单元格需要进行重绘,因此我们需要一个标志让该视口仅在存在对 setViewPosition(Point) 的显式调用时执行优化的绘制。当通过其他途径调用 setBounds 时,该标志关闭并且该视图按常规方法重绘。另一种方法是从 JViewport 类中移除此标志,并让 JList 通过使用 setBackingStoreEnabled 管理此情形。默认值为 false


BLIT_SCROLL_MODE

public static final int BLIT_SCROLL_MODE
使用 graphics.copyArea 来实现滚动。对多数应用程序而言,这是最快的方法。

从以下版本开始:
1.3
另请参见:
setScrollMode(int), 常量字段值

BACKINGSTORE_SCROLL_MODE

public static final int BACKINGSTORE_SCROLL_MODE
将视口内容拉入屏幕外图像。这以前是 JTable 的默认模式。在某些情况下,此模式优于“位图传送模式”,但它需要大量的额外内存。

从以下版本开始:
1.3
另请参见:
setScrollMode(int), 常量字段值

SIMPLE_SCROLL_MODE

public static final int SIMPLE_SCROLL_MODE
此模式使用非常简单的方法,在 scrollpane 每次滚动时重绘它的整个内容。这是 Swing 1.0 和 Swing 1.1 中的默认行为。在多数情况下,其他两个选项都将提供更好的性能。

从以下版本开始:
1.3
另请参见:
setScrollMode(int), 常量字段值
构造方法详细信息

JViewport

public JViewport()
创建一个 JViewport

方法详细信息

getUI

public ViewportUI getUI()
返回呈现此组件的 L&F 对象。

返回:
ViewportUI 对象
从以下版本开始:
1.3

setUI

public void setUI(ViewportUI ui)
设置呈现此组件的 L&F 对象。

参数:
ui - ViewportUI L&F 对象
从以下版本开始:
1.3
另请参见:
UIDefaults.getUI(javax.swing.JComponent)

updateUI

public void updateUI()
将 UI 属性重置为当前外观的值。

覆盖:
JComponent 中的 updateUI
另请参见:
JComponent.updateUI()

getUIClassID

public String getUIClassID()
返回指定呈现此组件的 L&F 类名称的字符串。

覆盖:
JComponent 中的 getUIClassID
返回:
字符串“ViewportUI”
另请参见:
JComponent.getUIClassID(), UIDefaults.getUI(javax.swing.JComponent)

addImpl

protected void addImpl(Component child,
                       Object constraints,
                       int index)
设置 JViewport 的轻量子对象,可以为 null。(由于只存在一个占用整个视口的子对象,因此忽略 constraintsindex 参数。)

覆盖:
Container 中的 addImpl
参数:
child - 视口的轻量 child
constraints - 要考虑的 constraint
index - 索引
另请参见:
setView(java.awt.Component)

remove

public void remove(Component child)
移除 Viewport 的一个轻量子对象。

覆盖:
Container 中的 remove
参数:
child - 要移除的组件
另请参见:
setView(java.awt.Component)

scrollRectToVisible

public void scrollRectToVisible(Rectangle contentRect)
滚动该视图,使该视图中的 Rectangle 变得可见。

如果视图当前无效,则此操作将尝试在滚动前验证该视图 - isValid 返回 false。为避免在创建包含层次结构时验证时间过长,如果祖先之一没有同位体,或者不存在有效的根祖先,或者祖先之一不是 WindowApplet,则不进行验证。

注意,此方法不会滚动到有效视口之外;例如,如果 contentRect 大于视口,滚动操作将限制在视口的边界之内。

覆盖:
JComponent 中的 scrollRectToVisible
参数:
contentRect - 要显示的 Rectangle
另请参见:
JComponent.isValidateRoot(), Component.isValid(), Component.getPeer()

setBorder

public final void setBorder(Border border)
视口通过常规父/子剪贴(一般该视图向滚动的相反方向移动)“滚动”其子视口(称为“视图”)。不支持非 null 边框或非零 inset,以防止此组件的几何结构复杂得无法禁止创建子类。要创建带边框的 JViewport,请将其添加到具有边框的 JPanel

注:如果 border 为非 null,此方法将抛出一个异常,原因是在 JViewPort 上不支持边框。

覆盖:
JComponent 中的 setBorder
参数:
border - 要设置的 Border
抛出:
IllegalArgumentException - 未实现此方法
另请参见:
Border, CompoundBorder

getInsets

public final Insets getInsets()
返回 inset(边框)维数 (0,0,0,0),因为在 JViewport 上不支持边框。

覆盖:
JComponent 中的 getInsets
返回:
零维数和零区域的 Rectange
另请参见:
setBorder(javax.swing.border.Border)

getInsets

public final Insets getInsets(Insets insets)
返回包含此 JViewport 的 inset 值的 inset 对象。重新初始化传入的 inset 对象,此对象中所有现有值都将被重写。

覆盖:
JComponent 中的 getInsets
参数:
insets - 可以重用的 inset 对象
返回:
此视口的 inset 值
另请参见:
getInsets()

isOptimizedDrawingEnabled

public boolean isOptimizedDrawingEnabled()
JViewport 重写此方法(在 JComponent 中返回 false)的默认实现。这确保了绘制机制将调用 Viewportpaint 实现,而不是直接通知 JViewport 的子对象。

覆盖:
JComponent 中的 isOptimizedDrawingEnabled
返回:
false

paint

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)

reshape

public void reshape(int x,
                    int y,
                    int w,
                    int h)
设置此视口的边界。如果视口的宽度或高度已更改,则激发 StateChanged 事件。

覆盖:
JComponent 中的 reshape
参数:
x - 原视口的左边缘
y - 原视口的上边缘
w - 以像素为单位的宽度
h - 以像素为单位的高度
另请参见:
JComponent.reshape(int, int, int, int)

setScrollMode

public void setScrollMode(int mode)
用于控制滚动视口内容的方法。您可能需要更改此模式,以便在您的使用情形中获得最大性能。

参数:
mode - 下列值之一:
  • JViewport.BLIT_SCROLL_MODE
  • JViewport.BACKINGSTORE_SCROLL_MODE
  • JViewport.SIMPLE_SCROLL_MODE
从以下版本开始:
1.3
另请参见:
BLIT_SCROLL_MODE, BACKINGSTORE_SCROLL_MODE, SIMPLE_SCROLL_MODE

getScrollMode

public int getScrollMode()
返回当前的滚动模式。

返回:
scrollMode 属性
从以下版本开始:
1.3
另请参见:
setScrollMode(int)

isBackingStoreEnabled

@Deprecated
public boolean isBackingStoreEnabled()
已过时。 从 Java 2 平台 1.3 版开始,由 getScrollMode() 取代。

如果此视口维护其内容的一个屏幕外图像,则返回 true

返回:
如果 scrollModeBACKINGSTORE_SCROLL_MODE,则返回 true

setBackingStoreEnabled

@Deprecated
public void setBackingStoreEnabled(boolean enabled)
已过时。 从 Java 2 平台 1.3 版开始,由 setScrollMode() 取代。

如果此视口维护其内容的一个屏幕外图像,则返回 true。此图像用于减少对 viewPosition 的较小一维更改的成本。我们使用 Graphics.copyArea 实现某些滚动,而不是重绘整个视口。

参数:
enabled - 如果为 true,则维持一个屏幕外后备存储

getView

public Component getView()
返回 JViewport 的一个子对象或 null

返回:
返回视口的子对象,如果不存在,则返回 null
另请参见:
setView(java.awt.Component)

setView

public void setView(Component view)
设置 JViewport 的一个轻量子对象 (view),可以为 null

参数:
view - 该视口的新轻量子对象
另请参见:
getView()

getViewSize

public Dimension getViewSize()
如果未显式设置视图的大小,则返回首选大小,否则返回该视图的当前大小。如果不存在视图,则返回(0,0)。

返回:
指定视图大小的 Dimension 对象

setViewSize

public void setViewSize(Dimension newSize)
设置视图的大小。将引发状态更改的事件。

参数:
newSize - 指定视图新大小的 Dimension 对象

getViewPosition

public Point getViewPosition()
返回显示在视口左上角的视图坐标,如果不存在视图,则返回(0,0)。

返回:
给出左上角坐标的 Point 对象

setViewPosition

public void setViewPosition(Point p)
设置显示在视口左上角的视图坐标,如果不存在视图,则不执行任何操作。

参数:
p - 给出左上角坐标的 Point 对象

getViewRect

public Rectangle getViewRect()
返回一个矩形,其原位置在 getViewPosition,大小为 getExtentSize。这是视图在视图坐标中的可见部分。

返回:
使用视图坐标给出视图可见部分的 Rectangle

computeBlit

protected boolean computeBlit(int dx,
                              int dy,
                              Point blitFrom,
                              Point blitTo,
                              Dimension blitSize,
                              Rectangle blitPaint)
计算 blit 的参数,其中后备存储图像当前在左上角包含 oldLoc,并且我们滚动到 newLoc。已修改该参数以返回 blit 所需的值。

参数:
dx - 水平 delta
dy - 垂直 delta
blitFrom - 我们从中传送的 Point
blitTo - 我们传送的 Point
blitSize - 要传送的区域的 Dimension
blitPaint - 要传送的区域
返回:
如果已修改参数并且我们已经准备好传送,则返回 true;否则返回 false

getExtentSize

public Dimension getExtentSize()
返回视图坐标中视图的可见部分的大小。

返回:
给出视图大小的 Dimension 对象

toViewCoordinates

public Dimension toViewCoordinates(Dimension size)
将一个大小的像素坐标转换为视图坐标。支持“逻辑坐标”的视口的子类将重写此方法。

参数:
size - 使用像素坐标的 Dimension 对象
返回:
转换为视图坐标的 Dimension 对象

toViewCoordinates

public Point toViewCoordinates(Point p)
将一个点的像素坐标转换为视图坐标。支持“逻辑坐标”的视口的子类将重写此方法。

参数:
p - 使用像素坐标的 Point 对象
返回:
转换为视图坐标的 Point 对象

setExtentSize

public void setExtentSize(Dimension newExtent)
使用视图坐标设置该视图可见部分的大小。

参数:
newExtent - 指定视图大小的 Dimension 对象

createViewListener

protected JViewport.ViewListener createViewListener()
为该视图创建侦听器。

返回:
ViewListener

createLayoutManager

protected LayoutManager createLayoutManager()
子类可以重写此方法以在该构造方法中安装一个不同布局的管理器(或者为 null)。返回要在 JViewport 上安装的 LayoutManager

返回:
LayoutManager

addChangeListener

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)

removeChangeListener

public void removeChangeListener(ChangeListener l)
从每次在视图的大小、位置或视口的扩展大小更改时都会得到通知的列表中移除 ChangeListener

参数:
l - 要移除的 ChangeListener
另请参见:
addChangeListener(javax.swing.event.ChangeListener)

getChangeListeners

public ChangeListener[] getChangeListeners()
返回使用 addChangeListener() 添加到此 JViewport 的所有 ChangeListener 的数组。

返回:
返回添加的所有 ChangeListener,如果未添加侦听器,则返回一个空数组
从以下版本开始:
1.4

fireStateChanged

protected void fireStateChanged()
在视图的大小、位置或视口的扩展大小更改时通知所有 ChangeListeners

另请参见:
addChangeListener(javax.swing.event.ChangeListener), removeChangeListener(javax.swing.event.ChangeListener), EventListenerList

repaint

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)

paramString

protected String paramString()
返回此 JViewport 的字符串表示形式。此方法仅在进行调试的时候使用,对于各个实现,所返回字符串的内容和格式可能有所不同。返回的字符串可能为空,但不可能为 null

覆盖:
JComponent 中的 paramString
返回:
JViewport 的字符串表示形式

firePropertyChange

protected void firePropertyChange(String propertyName,
                                  Object oldValue,
                                  Object newValue)
通知侦听器发生的属性更改。已创建其子类以更新 windowBlit 属性。(putClientProperty 属性为最后属性)。

覆盖:
Component 中的 firePropertyChange
参数:
propertyName - 包含属性名的字符串
oldValue - 属性的旧值
newValue - 属性的新值

getAccessibleContext

public AccessibleContext getAccessibleContext()
获取与此 JViewport 关联的 AccessibleContext。对于视口来说,AccessibleContext 采用 AccessibleJViewport 的某种形式。必要时创建新的 AccessibleJViewport 实例。

指定者:
接口 Accessible 中的 getAccessibleContext
覆盖:
JComponent 中的 getAccessibleContext
返回:
一个 AccessibleJViewport,它充当此 JViewport 的 AccessibleContext

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策