|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JViewport
public class JViewport
基本となる情報を見るために使用する「ビューポート (窓)」です。スクロールするときに移動するのがビューポートです。これは、カメラのファインダーを覗くことに似ています。ファインダーを上に向かって動かすと、新しいものが視野の一番上に入り、一番下にあったものが視野から消えます。
デフォルトでは、JViewport は不透明です。これを変更する場合は、setOpaque メソッドを使用します。
注: 描画する際にバッファを必要としない高速スクロールアルゴリズムを実装しました。アルゴリズムの機能は次のとおりです。
JComponents かどうかを調べる。そうでない場合は中止して、ビューポート全体をペイントし直すWindow グラフィックスを取得して、スクロールした領域の copyArea をペイントし直すcopyArea を 2 回実行することを避けることができます。バッキングストア以外の場合と比較すると、ペイント領域を大幅に削減できます。
この方法は、ビューポートがほかのウィンドウで隠されたり、部分的にオフスクリーンとなると、バッキングストア法よりも速度が遅くなります。ほかのウィンドウでビューポートが隠されると、copyArea はガベージをコピーしシステムがペイントイベントを生成して、新たに出現した領域をペイントする必要があることを知らせます。これを処理する唯一の方法は、ビューポート全体をペイントし直すことです。ただし、バッキングストアの場合に比較してパフォーマンスが低下することがあります。非常にまれではありますが、ビューポートがほかのウィンドウで隠されているときにユーザがスクロールすることがあるため、ほとんどのアプリケーションでこの最適化機能は、ビューポートが隠された場合に有効となります。
警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。JDK バージョン 1.4 以降、すべての JavaBeans™ の長期間の運用サポートは、java.beans パッケージに追加されています。詳細は、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.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
このモードはスクロール区画をスクロールするたびに全コンテンツを再描画するという非常に簡単なメソッドを使用します。 |
| クラス 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 を返します。 |
ChangeListener[] |
getChangeListeners()
addChangeListener() によってこの JViewport に追加されたすべての ChangeListener の配列を返します。 |
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()
現在の Look & Feel からの値に UI プロパティをリセットします。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| フィールドの詳細 |
|---|
protected boolean isViewSizeSet
protected Point lastPaintPosition
viewPosition です。バッキングストアイメージがどのくらい有効かを知ることができます。
@Deprecated protected boolean backingStore
false です。
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 モード」には有用かもしれませんが、かなりの量の余分な RAM が必要となります。
setScrollMode(int),
定数フィールド値public static final int SIMPLE_SCROLL_MODE
setScrollMode(int),
定数フィールド値| コンストラクタの詳細 |
|---|
public JViewport()
JViewport を生成します。 | メソッドの詳細 |
|---|
public ViewportUI getUI()
ViewportUI オブジェクトpublic void setUI(ViewportUI ui)
ui - ViewportUI L&F オブジェクトUIDefaults.getUI(javax.swing.JComponent)public void updateUI()
JComponent 内の updateUIJComponent.updateUI()public String getUIClassID()
JComponent 内の getUIClassIDJComponent.getUIClassID(),
UIDefaults.getUI(javax.swing.JComponent)
protected void addImpl(Component child,
Object constraints,
int index)
JViewport の 1 つの軽量な子を設定します。null も指定できます。ビューポート全体を占める子は 1 つだけなので、引数 constraints および index は無視されます。
Container 内の addImplchild - ビューポートの軽量な childconstraints - 遵守されるべき constraintsindex - インデックスsetView(java.awt.Component)public void remove(Component child)
Viewport の 1 つの軽量な子を削除します。
Container 内の removechild - 削除されるコンポーネントsetView(java.awt.Component)public void scrollRectToVisible(Rectangle contentRect)
Rectangle が可視になるようにビューをスクロールします。
このメソッドは、スクロールの前にビューを検証します。ビューが現在無効な場合、isValid が false を返します。包含関係の階層を作成しているときに過剰な検証を避けるため、このメソッドは、ピアを持たない上位クラスの有無、有効なルートクラスの有無、および Window または Applet のどちらかでない上位クラスの有無については検証しません。
このメソッドは、有効なビューポートの範囲外のスクロールは行いません。contentRect がビューポートより大きい場合、スクロールはビューポート境界の範囲内に限定されます。
JComponent 内の scrollRectToVisiblecontentRect - 表示する RectangleJComponent.isValidateRoot(),
Component.isValid(),
Component.getPeer()public final void setBorder(Border border)
null 以外のボーダ (または 0 以外のインセット) は、サポートされていません。それは、サブクラス化を難しくするほどこのコンポーネントのジオメトリが複雑になるのを防ぐためです。ボーダ付きの JViewport を生成するには、ボーダを持つ JPanel にそれを追加します。
注: border が null 以外の場合、このメソッドは境界が JViewPort ではサポートされていないため例外をスローします。
JComponent 内の setBorderborder - 設定する Border
IllegalArgumentException - このメソッドが実装されない場合Border,
CompoundBorderpublic final Insets getInsets()
JViewport ではボーダがサポートされていないので、インセット (ボーダ) の寸法を (0,0,0,0) として返します。
JComponent 内の getInsetsRectangesetBorder(javax.swing.border.Border)public final Insets getInsets(Insets insets)
JViewport のインセット値を格納する Insets オブジェクトを返します。渡された Insets オブジェクトは再び初期化され、このオブジェクト内のすべての既存の値は上書きされます。
JComponent 内の getInsetsinsets - 再利用できる Insets オブジェクト
getInsets()public boolean isOptimizedDrawingEnabled()
JViewport は (JComponent で) このメソッドのデフォルト実装をオーバーライドし、false を返します。その結果、描画装置は JViewport の子に直接メッセージを送るのではなく、Viewport の paint の実装を呼び出します。
JComponent 内の isOptimizedDrawingEnabledpublic void paint(Graphics g)
backingStore が使用可能かどうかに応じて、バッキングストアを介してイメージをペイントするか、または現在表示されている部分だけをペイントし、バッキングストアを使用して残りの部分を「Blit」します。「Blit」は、PDP-10 BLT (BLock Transfer) 命令のことであり、ビットのブロックをコピーします。
JComponent 内の paintg - ペイントする 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)
public void reshape(int x,
int y,
int w,
int h)
StateChanged イベントをトリガします。
JComponent 内の reshapex - 起点の左端y - 起点の上端w - ピクセル単位の幅h - ピクセル単位の高さJComponent.reshape(int, int, int, int)public void setScrollMode(int mode)
mode - 次の値のどれかBLIT_SCROLL_MODE,
BACKINGSTORE_SCROLL_MODE,
SIMPLE_SCROLL_MODEpublic int getScrollMode()
scrollMode プロパティsetScrollMode(int)@Deprecated public boolean isBackingStoreEnabled()
getScrollMode() に置き換えられました。
true を返します。
scrollMode が BACKINGSTORE_SCROLL_MODE の場合は true@Deprecated public void setBackingStoreEnabled(boolean enabled)
setScrollMode() に置き換えられました。
viewPosition に対する一方向のわずかな変更に対するコストを削減するために使用されます。ビューポート全体をペイントし直すのではなく、Graphics.copyArea を使用してスクロールを実行します。
enabled - true の場合、オフスクリーンバッキングストアを維持するpublic Component getView()
JViewport の 1 つの子または null を返します。
nullsetView(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 オブジェクト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 元の PointblitTo - Blit 先の PointblitSize - Blit する領域の DimensionblitPaint - 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()
ViewListenerprotected LayoutManager createLayoutManager()
null) をインストールできます。JViewport でインストールする LayoutManager を返します。
LayoutManagerpublic void addChangeListener(ChangeListener l)
ChangeListener を追加します。
l - 追加する ChangeListenerremoveChangeListener(javax.swing.event.ChangeListener),
setViewPosition(java.awt.Point),
setViewSize(java.awt.Dimension),
setExtentSize(java.awt.Dimension)public void removeChangeListener(ChangeListener l)
ChangeListener を削除します。
l - 削除する ChangeListeneraddChangeListener(javax.swing.event.ChangeListener)public ChangeListener[] getChangeListeners()
ChangeListener の配列を返します。
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 内の repainttm - 更新までの最大時間 (ミリ秒)x - x 座標 (左からのピクセル数)y - y 座標 (上からのピクセル数)w - 幅h - 高さComponent.update(java.awt.Graphics)protected String paramString()
JViewport の文字列表現を返します。このメソッドはデバッグ専用であり、返される文字列の内容および形式は実装によって異なります。返される文字列は空の場合がありますが、null にはなりません。
JComponent 内の paramStringJViewport の文字列表現
protected void firePropertyChange(String propertyName,
Object oldValue,
Object newValue)
windowBlit プロパティを更新します。putClientProperty プロパティは final です。
Component 内の firePropertyChangepropertyName - プロパティ名が格納されている文字列oldValue - プロパティの変更前の値newValue - プロパティの変更後の値public AccessibleContext getAccessibleContext()
Accessible 内の getAccessibleContextJComponent 内の getAccessibleContext
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。