Panel
ScrollPaneクラスは
Containerクラス
の直接のサブクラスです。
java.awtパッケージに含まれます。
このクラスは JDK1.1から新しく追加されました。
内部にあるサイズの大きなコンポーネントを
スクロールさせて表示する機能を提供します。
ScrollPaneは通常の Containerと違って、内部に表示されるコンポーネントは
1個しか許されません。
また LayoutManagerの助けは借りません
(内部に1個しかコンポーネントがないので、レイアウトの処理自体不要なので。)
したがって、setLayout()のメソッドは呼び出してもエラーになるだけです。
また、add()メソッドは複数回呼び出しても無意味で、
実際に表示されるのは最後に追加したコンポーネントのみです。
ScrollPaneクラスのフィールド
ScrollPaneクラスにはスクロールバーの表示の方針を指定するための
publicでstaticかつfinalな 3個のフィールドが存在します。
- public static final int SCROLLBARS_AS_NEEDED
- public static final int SCROLLBARS_ALWAYS
- public static final int SCROLLBARS_NEVER
それぞれ、必要な時(内部のコンポーネントのサイズが、ScrolPaneの
表示可能なサイズよりも大きい場合)のみにスクロールバーを表示、
常に表示、常に表示しない、に対応します。
ScrollPaneクラスのメソッド
ScrollPaneクラスには、
2個のコンストラクタと15個のpublic なメソッドが用意されています。
コンストラクタ
- public ScrollPane()
- public ScrollPane(int scrollbarDisplayPolicy)
scrollbarDisplayPolicyは、スクロールバーの表示の方針を
上記のフィールドの値のいずれかで指定します。
デフォルト値は SCROLLBARS_AS_NEEDEDです。
メッソド
- public int getScrollbarDisplayPolicy()
- public Dimension getViewportSize()
- public int getHScrollbarHeight()
- public int getVScrollbarWidth()
- public Adjustable getHAdjustable()
- public Adjustable getVAdjustable()
- public Point getScrollPosition()
- public void setScrollPosition(int x, int y)
- public void setScrollPosition(Point p)
- public final void setLayout(LayoutManager mgr)
- public void doLayout()
- public void layout()
- public void printComponents(Graphics g)
- public void addNotify()
- public String paramString()
getScrollbarDisplayPolicy()は現在のスクロールバーの表示の方針を返します。
getViewportSize()は ScrollPaneが表示可能なサイズを返します。
デフォルト値は 100x100です。
getHScrollbarHeight()と getVScrollbarWidth()は、
それぞれ横向きのスクロールバーの高さ、
縦向きのスクロールバーの横幅を返します。
ScrollPane全体のサイズから表示可能なサイズを算出したい時に利用します。
getHAdjustable()と getVAdjustable()は、
それぞれ横向き、縦向きの Adjustable のオブジェクト
(通常は Scrollbarのオブジェクト)を返します。
getScrollPosition()は、
現在表示されている内部のコンポーネントの座標
(表示されている左上端の点のコンポーネント内の座標)を返します。
setScrollPosition()は、
指定された座標の値を元に内部のコンポーネントの表示する位置を設定します。
setLayout()は、上に述べたように ScrollPaneにとっては無意味な指定です。
したがって呼び出すと AWTErrorを throw するように定義されています。
また final の指定がされているので、ScrollPaneのサブクラスで定義を変更する
ことは許されません。
doLayout(),layout()は内部のコンポーネントのサイズをチェックし、
必要ならばスクロールバーを表示します。
JDK1.1では doLayout()を使用することが推奨されています。
printComponent()は内部のコンポーネントの printAll()メソッドを呼び出します。
addNotify()は、独自のデザインを実装する場合に、その登録を行います。
paramString()は、スクロールバーの表示の方針、内部のコンポーネントの情報、
表示されている座標を Stringクラスのオブジェクトとして返します。