|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--javax.swing.JComponent | +--javax.swing.JViewport
基本となる情報を見るために使用する「ビューポート (窓)」です。スクロールするときに移動するのがビューポートです。これは、カメラのファインダーを覗くことに似ています。ファインダーを上に向かって動かすと、新しいものが視野の一番上に入り、一番下にあったものが視野から消えます。
デフォルトでは、JViewport
は不透明です。これを変更する場合は、setOpaque
メソッドを使用します。
注: 描画する際にバッファを必要としない高速スクロールアルゴリズムを実装しました。アルゴリズムの機能は次のとおりです。
JComponents
かどうかを調べる。そうでない場合は中止して、ビューポート全体をペイントし直す
copyArea
をペイントし直す
copyArea
を 2 回実行したりすることを避けることができます。バッキングストア以外の場合と比較すると、ペイント領域を大幅に削減できます。
この方法は、ビューポートがほかのウィンドウで隠されたり、部分的にオフスクリーンとなると、バッキングストア法よりも速度が遅くなります。ほかのウィンドウでビューポートが隠されると、copyArea はガベージをコピーしシステムがペイントイベントを生成して、新たに出現した領域をペイントする必要があることを知らせます。これを処理する唯一の方法は、ビューポート全体をペイントし直すことです。ただし、バッキングストアの場合に比較してパフォーマンスが低下することがあります。非常にまれではありますが、ビューポートがほかのウィンドウで隠されているときにユーザがスクロールすることがあるため、ほとんどのアプリケーションでこの最適化機能は、ビューポートが隠された場合に有効となります。 警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。今後の Swing リリースでは、長期間の持続性をサポートする予定です。
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 |
フィールドの概要 | |
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
このモードはスクロールペインをスクロールするたびに全コンテンツを再描画するという非常に簡単なメソッドを使います。 |
クラス 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 の 1 つの軽量な子を設定します。 |
protected boolean |
computeBlit(int dx,
int dy,
Point blitFrom,
Point blitTo,
Dimension blitSize,
Rectangle blitPaint)
blit のパラメータを計算します。 |
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 を返します。 |
Dimension |
getExtentSize()
ビューの可視部分のサイズをビューの座標で返します。 |
Insets |
getInsets()
JViewport ではボーダがサポートされていないので、インセット (ボーダ) の寸法を (0,0,0,0) として返します。 |
Insets |
getInsets(Insets insets)
この JViewport のインセット値を格納する Insets オブジェクトを返します。 |
int |
getScrollMode()
現在のスクロールモードを返します。 |
ViewportUI |
getUI()
このコンポーネントを描画する L&F オブジェクトを返します。 |
String |
getUIClassID()
このコンポーネントを描画する L&F クラスの名前を文字列で返します。 |
Component |
getView()
JViewport の 1 つの子または null を返します。 |
Point |
getViewPosition()
ビューポートの左上隅に表示されるビューの座標を返します。 |
Rectangle |
getViewRect()
起点が getViewPosition 、サイズが getExtentSize である矩形を返します。 |
Dimension |
getViewSize()
ビューのサイズが明示的に設定されていない場合は、適切なサイズを返します。 |
boolean |
isBackingStoreEnabled()
推奨されていません。 Java 2 プラットフォーム v1.3 以降、 getScrollMode() に置き換えられました。 |
boolean |
isOptimizedDrawingEnabled()
JViewport は (JComponent で) このメソッドのデフォルト実装をオーバーライドし、false を返します。 |
void |
paint(Graphics g)
backingStore が使用可能かどうかに応じて、バッキングストアを介してイメージをペイントするか、または現在表示されている部分だけをペイントし、バッキングストアを使用して残りの部分を「blit」します。
|
protected String |
paramString()
この JViewport の文字列表現を返します。 |
void |
remove(Component child)
Viewport の 1 つの軽量な子を削除します。 |
void |
removeChangeListener(ChangeListener l)
ビューのサイズ、位置、またはビューポートの長さが変更されるたびに通知されるリストから ChangeListener を削除します。 |
void |
repaint(long tm,
int x,
int y,
int w,
int h)
RepaintManager によって paint が 1 回だけ実行されるように、常に親の座標体系で再ペイントします。 |
void |
reshape(int x,
int y,
int w,
int h)
このビューポートの境界を設定します。 |
void |
scrollRectToVisible(Rectangle contentRect)
ビュー内の 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 の 1 つの軽量な子 (view ) を設定します。 |
void |
setViewPosition(Point p)
ビューポートの左上隅に表示されるビューの座標を設定します。 |
void |
setViewSize(Dimension newSize)
ビューポートの左上隅に表示されるビューの座標、およびビューのサイズを設定します。 |
Dimension |
toViewCoordinates(Dimension size)
ピクセル座標のサイズをビューの座標に変換します。 |
Point |
toViewCoordinates(Point p)
ピクセル座標のポイントをビューの座標に変換します。 |
void |
updateUI()
L&F が変更されたことを示す UIFactory からの通知です。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
フィールドの詳細 |
protected boolean isViewSizeSet
protected Point lastPaintPosition
viewPosition
です。バッキングストアイメージがどのくらい有効かを知ることができます。protected boolean backingStore
setScrollMode(int)
protected transient Image backingStoreImage
protected boolean scrollUnderway
scrollUnderway
フラグは、JList
などのコンポーネントで使用されます。JList
で下矢印キーが押され、選択されているセルがリストの最後のセルである場合、scrollpane
はオートスクロールします。ここで、選択されていたセルは再ペイントの必要があるため、setViewPosition(Point)
の明示的な呼び出しがある場合にだけ、ビューポートが最適化されたペイントをするためにフラグが必要になります。setBounds
がほかのルートを介して呼び出される場合、フラグはオフになり、ビューは普通に再ペイントされます。これとは別に、JViewport
クラスからこれを削除し、setBackingStoreEnabled
を使用して JList
にこの場合の制御をさせる方法もあります。デフォルトは false です。public static final int BLIT_SCROLL_MODE
graphics.copyArea()
を使用してスクロールを実装します。この方法がほとんどのアプリケーションにとって最も速い方法です。setScrollMode(int)
public static final int BACKINGSTORE_SCROLL_MODE
JTable
のデフォルトでした。この方法は、場合によっては「blit mode」には有用かもしれませんが、かなりの量の余分な RAM が必要となります。setScrollMode(int)
public static final int SIMPLE_SCROLL_MODE
setScrollMode(int)
コンストラクタの詳細 |
public JViewport()
JViewport
を生成します。メソッドの詳細 |
public ViewportUI getUI()
public void setUI(ViewportUI ui)
ui
- ViewportUI
L&F オブジェクトUIDefaults.getUI(javax.swing.JComponent)
public void updateUI()
UIFactory
からの通知です。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
の 1 つの軽量な子を設定します。null
も指定できます。ビューポート全体を占める子は 1 つだけなので、制約およびインデックスの引数は無視されます。Container
内の addImpl
child
- ビューポートの軽量な child
constraints
- 遵守されるべき constraints
index
- インデックスsetView(java.awt.Component)
public void remove(Component child)
Viewport
の 1 つの軽量な子を削除します。Container
内の remove
setView(java.awt.Component)
public void scrollRectToVisible(Rectangle contentRect)
Rectangle
が可視になるようにビューをスクロールするためにオーバーライドされます。JComponent
内の scrollRectToVisible
contentRect
- 表示する Rectangle
public final void setBorder(Border border)
null
以外のボーダ (または 0 以外のインセット) は、サポートされていません。それは、サブクラス化を難しくするほどこのコンポーネントのジオメトリが複雑になるのを防ぐためです。ボーダ付きの JViewport
を生成するには、ボーダを持つ JPanel
にそれを追加します。
注: border
が null
以外の場合、このメソッドは境界が JViewPort
ではサポートされていないため例外をスローします。
JComponent
内の setBorder
border
- 設定する Border
IllegalArgumentException
- このメソッドは実装されていないpublic final Insets getInsets()
JViewport
ではボーダがサポートされていないので、インセット (ボーダ) の寸法を (0,0,0,0) として返します。JComponent
内の getInsets
Rectange
setBorder(javax.swing.border.Border)
public final Insets getInsets(Insets insets)
JViewport
のインセット値を格納する Insets
オブジェクトを返します。渡された Insets
オブジェクトは再び初期化され、このオブジェクト内のすべての既存の値は上書きされます。JComponent
内の getInsets
insets
- 再利用できる Insets
オブジェクトgetInsets()
public boolean isOptimizedDrawingEnabled()
JViewport
は (JComponent
で) このメソッドのデフォルト実装をオーバーライドし、false を返します。その結果、描画装置は JViewport
の子に直接メッセージを送るのではなく、Viewport
の paint
の実装を呼び出します。JComponent
内の isOptimizedDrawingEnabled
public void paint(Graphics g)
backingStore
が使用可能かどうかに応じて、バッキングストアを介してイメージをペイントするか、または現在表示されている部分だけをペイントし、バッキングストアを使用して残りの部分を「blit」します。
「blit」は、PDP-10 BLT (BLock Transfer) 命令のことであり、ビットのブロックをコピーします。
JComponent
内の paint
g
- ペイントする Graphics
コンテキスト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)
public boolean isBackingStoreEnabled()
getScrollMode()
に置き換えられました。
scrollMode
が BACKINGSTORE_SCROLL_MODE の場合は truepublic void setBackingStoreEnabled(boolean enabled)
setScrollMode()
に置き換えられました。
viewPosition
に対する一方向のわずかな変更に対するコストを削減するために使用されます。ビューポート全体を再ペイントするのではなく、Graphics.copyArea()
を使用してスクロールを実行します。enabled
- true の場合、オフスクリーンバッキングストアを維持するpublic Component getView()
JViewport
の 1 つの子または null
を返します。null
setView(java.awt.Component)
public void setView(Component view)
JViewport
の 1 つの軽量な子 (view
) を設定します。null
も指定できます。view
- ビューポートの新しい軽量な子getView()
public Dimension getViewSize()
Dimension
オブジェクトpublic void setViewSize(Dimension newSize)
newSize
- 新しいビューの座標のサイズおよび位置を指定する Dimension
オブジェクト。ビューがない場合は null
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
- blit 元の Point
blitTo
- blit 先の Point
blitSize
- blit する領域の 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
オブジェクトprotected JViewport.ViewListener createViewListener()
ViewListener
protected LayoutManager createLayoutManager()
null
) をインストールできます。新しい ViewportLayout
オブジェクトを返します。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)
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
によって paint が 1 回だけ実行されるように、常に親の座標体系で再ペイントします。JComponent
内の repaint
tm
- 更新までの最大時間 (ミリ秒)x
- x
座標 (左からのピクセル数)y
- y
座標 (上からのピクセル数)width
- 幅height
- 高さComponent.update(java.awt.Graphics)
protected String paramString()
JViewport
の文字列表現を返します。このメソッドはデバッグ専用であり、返される文字列の内容および形式は実装によって異なります。返される文字列は空の場合がありますが、null
にはなりません。JComponent
内の paramString
JViewport
の文字列表現protected void firePropertyChange(String propertyName, Object oldValue, Object newValue)
windowBlit
プロパティを更新します。(putClientProperty
プロパティは final です。)JComponent
内の firePropertyChange
propertyName
- プロパティ名が格納されている文字列oldValue
- プロパティの古い値newValue
- プロパティの新しい値public AccessibleContext getAccessibleContext()
Accessible
内の getAccessibleContext
JComponent
内の getAccessibleContext
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.