JavaTM 2 Platform
Std. Ed. v1.3

javax.swing
クラス JLayeredPane

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JLayeredPane
すべての実装インタフェース:
Accessible, ImageObserver, MenuContainer, Serializable
直系の既知のサブクラス:
JDesktopPane

public class JLayeredPane
extends JComponent
implements Accessible

JLayeredPane は、JFC/Swing コンテナに深さを追加し、必要であればコンポーネントどうしが互いにオーバーラップできるようにします。Integer オブジェクトはコンテナ内での各コンポーネントの深さを表し、番号が大きいほど他のコンポーネントの上に表示されます。階層化区画に関するタスク指向のドキュメントおよび使用例は、「The Java Tutorial」「How to Use a Layered Pane」を参照してください。

操作を容易にするため、JLayeredPane は深さの範囲をいくつかのレイヤに分割しています。コンポーネントをこれらのレイヤのどれかに配置することで、深さを指定する番号を指定することなしに、コンポーネントを適切にオーバーラップさせることができます。

DEFAULT_LAYER
ほとんどのコンポーネントが配置される標準レイヤです。最下層のレイヤとなります。
PALETTE_LAYER
パレットレイヤは、デフォルトレイヤの上に表示されます。ドラッグ可能なツールバーやパレットは、他のコンポーネントの上に表示されるように、このレイヤに配置すると便利です。
MODAL_LAYER
モーダルダイアログ用のレイヤです。モーダルダイアログは、コンテナ内のツールバー、パレット、および標準コンポーネントの上に表示されます。
POPUP_LAYER
ポップアップレイヤは、ダイアログの上に表示されます。このレイヤにより、コンボボックス、ツールヒント、およびその他のヘルプテキストに関連したポップアップウィンドウは、そのポップアップウィンドウを生成したコンポーネント、パレット、またはダイアログの上に表示されます。
DRAG_LAYER
コンポーネントをドラッグする際には、そのコンポーネントをドラッグレイヤに割り当てることによって、コンテナ内の他のすべてのコンポーネントより上に表示させることができます。ドラッグが完了したら、そのコンポーネントを元のレイヤに割り当て直すことができます。
JLayeredPane のメソッドである moveToFront(Component)moveToBack(Component)、および setPosition を使用することで、レイヤ内でコンポーネントを再配置することができます。setLayer メソッドを使用すると、コンポーネントの現在のレイヤを変更することができます。

詳細

JLayeredPane は、Container と同じように子のリストを管理しますが、内部で複数のレイヤを定義することができます。同じレイヤに属する子は、通常の Container オブジェクトとまったく同じように管理されますが、子コンポーネント同士がオーバーラップした場合には、上位のレイヤのコンポーネントの方が下位レイヤのコンポーネントより上に表示されます。

各レイヤには個別の整数値が割り当てられます。Component のレイヤ属性を設定するには、add 呼び出しで Integer オブジェクトを渡します。
例:

     layeredPane.add(child, JLayeredPane.DEFAULT_LAYER);
または
     layeredPane.add(child, new Integer(10));
Component のレイヤ属性を設定するには、コンポーネントの親である JlayeredPane 上で
     layeredPaneParent.setLayer(child, 10)
を呼び出すこともできます。レイヤは、子を親に追加する前に設定しなければなりません。

番号が大きいレイヤほど上に表示されます。したがって、次のように各コンポーネントに個別のレイヤ番号と文字を割り当てることにより、

       5a, 5b, 5c, 2a, 2b, 2c, 1a 
左のコンポーネントほど上に表示されます。

コンポーネントをレイヤ内で一番上または一番下に移動させるには、moveToFront または moveToBack を呼び出します。

レイヤ内でのコンポーネントの位置を位置番号で指定することもできます。指定できる位置番号は、0 〜「レイヤ内のコンポーネント数 - 1」です。-1 を指定すると、コンポーネントは一番下に表示されます。0 を指定すると、コンポーネントは一番上に表示されます。レイヤ番号とは異なり、値が大きいほど下に表示されます。

注: この順序 (java.awt.Container で定義されている) は、レイヤ番号の順序の反対になっています。通常は、moveToFrontmoveToBack、および setLayer を使用します。
add(Component, layer, position) メソッドの使用例を示します。 add(5x, 5, -1) 呼び出しの結果は次のとおりです。
       5a, 5b, 5c, 5x, 2a, 2b, 2c, 1a 
add(5z, 5, 2) 呼び出しの結果は次のとおりです。
       5a, 5b, 5z, 5c, 5x, 2a, 2b, 2c, 1a 
add(3a, 3, 7) 呼び出しの結果は次のとおりです。
       5a, 5b, 5z, 5c, 5x, 3a, 2a, 2b, 2c, 1a 
通常のペイント/イベント方式では、1a が一番下、5a が一番上に表示されます。

注: これらのレイヤは単に論理的な構造であり、LayoutManager は、レイヤ設定には関係なく、このコンテナのすべての子コンポーネントに影響します。

警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。今後の Swing リリースでは、長期間の持続性をサポートする予定です。

関連項目:
直列化された形式

内部クラスの概要
protected  class JLayeredPane.AccessibleJLayeredPane
          このクラスは JLayeredPane クラス用のユーザ補助機能のサポートを実装しています。
 
クラス javax.swing.JComponent から継承した内部クラス
JComponent.AccessibleJComponent
 
クラス java.awt.Container から継承した内部クラス
Container.AccessibleAWTContainer
 
クラス java.awt.Component から継承した内部クラス
Component.AccessibleAWTComponent
 
フィールドの概要
static Integer DEFAULT_LAYER
          デフォルトレイヤを定義する簡易オブジェクトです。
static Integer DRAG_LAYER
          ドラッグレイヤを定義する簡易オブジェクトです。
static Integer FRAME_CONTENT_LAYER
          フレーム内容レイヤを定義する簡易オブジェクトです。
static String LAYER_PROPERTY
          バウンドプロパティです。
static Integer MODAL_LAYER
          モーダルレイヤを定義する簡易オブジェクトです。
static Integer PALETTE_LAYER
          パレットレイヤを定義する簡易オブジェクトです。
static Integer POPUP_LAYER
          ポップアップレイヤを定義する簡易オブジェクトです。
 
クラス 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
 
コンストラクタの概要
JLayeredPane()
          新しい JLayeredPane を作成します。
 
メソッドの概要
protected  void addImpl(Component comp, Object constraints, int index)
          指定されたコンポーネントを、指定されたインデックスで、コンテナへ追加します。
 AccessibleContext getAccessibleContext()
          この JLayeredPane に関連した AccessibleContext を返します。
 int getComponentCountInLayer(int layer)
          指定されたレイヤの現在の子の数を返します。
 Component[] getComponentsInLayer(int layer)
          指定されたレイヤのコンポーネントの配列を返します。
protected  Hashtable getComponentToLayer()
          コンポーネントをレイヤにマッピングするハッシュテーブルを返します。
 int getIndexOf(Component c)
          指定された Component のインデックスを返します。
 int getLayer(Component c)
          指定された Component のレイヤ属性を返します。
static int getLayer(JComponent c)
          JComponent のレイヤプロパティを返します。
static JLayeredPane getLayeredPaneAbove(Component c)
          指定されたコンポーネントを含む最初の JLayeredPane を返す簡易メソッドです。
protected  Integer getObjectForLayer(int layer)
          指定されたレイヤに関連した Integer オブジェクトを返します。
 int getPosition(Component c)
          レイヤ内でのコンポーネントの相対位置を返します。
 int highestLayer()
          現在のすべての子から最大レイヤ値を返します。
protected  int insertIndexForLayer(int layer, int position)
          レイヤおよび位置の要求に従って新しい子を挿入する適切な位置を決定するためのプリミティブメソッドです。
 boolean isOptimizedDrawingEnabled()
          区画内のコンポーネントがオーバーラップ可能である場合には false を返します。
 int lowestLayer()
          現在のすべての子から最小レイヤ値を返します。
 void moveToBack(Component c)
          コンポーネントを現在のレイヤで一番下 (位置 -1) に移動します。
 void moveToFront(Component c)
          コンポーネントを現在のレイヤで一番上 (位置 0) に移動します。
 void paint(Graphics g)
          指定されたグラフィックスコンテキストで、この JLayeredPane を描画します。
protected  String paramString()
          この JLayeredPane の文字列表現を返します。
static void putLayer(JComponent c, int layer)
          JComponent のレイヤプロパティを設定します。
 void remove(int index)
          この区画からインデックス付きのコンポーネントを削除します。
 void setLayer(Component c, int layer)
          指定されたコンポーネントのレイヤ属性を設定し、レイヤ内で一番下のコンポーネントとします。
 void setLayer(Component c, int layer, int position)
          指定されたコンポーネントのレイヤ属性と、レイヤ内でのコンポーネントの位置を指定します。
 void setPosition(Component c, int position)
          コンポーネントを現在のレイヤの position に移動します。
 
クラス javax.swing.JComponent から継承したメソッド
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getUIClassID, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
 
クラス java.awt.Container から継承したメソッド
add, add, add, add, add, addContainerListener, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getLayout, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setLayout, validate, validateTree
 
クラス java.awt.Component から継承したメソッド
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabled, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

DEFAULT_LAYER

public static final Integer DEFAULT_LAYER
デフォルトレイヤを定義する簡易オブジェクトです。new Integer(0) と同等です。

PALETTE_LAYER

public static final Integer PALETTE_LAYER
パレットレイヤを定義する簡易オブジェクトです。new Integer(100) と同等です。

MODAL_LAYER

public static final Integer MODAL_LAYER
モーダルレイヤを定義する簡易オブジェクトです。new Integer(200) と同等です。

POPUP_LAYER

public static final Integer POPUP_LAYER
ポップアップレイヤを定義する簡易オブジェクトです。new Integer(300) と同等です。

DRAG_LAYER

public static final Integer DRAG_LAYER
ドラッグレイヤを定義する簡易オブジェクトです。new Integer(400) と同等です。

FRAME_CONTENT_LAYER

public static final Integer FRAME_CONTENT_LAYER
フレーム内容レイヤを定義する簡易オブジェクトです。このレイヤは通常、JFrame の contentPane および menuBar コンポーネントを配置するためにだけ使用します。new Integer(-30000) と同等です。
関連項目:
JFrame

LAYER_PROPERTY

public static final String LAYER_PROPERTY
バウンドプロパティです。
コンストラクタの詳細

JLayeredPane

public JLayeredPane()
新しい JLayeredPane を作成します。
メソッドの詳細

addImpl

protected void addImpl(Component comp,
                       Object constraints,
                       int index)
クラス Container の記述:
指定されたコンポーネントを、指定されたインデックスで、コンテナへ追加します。また、このメソッドは、指定された制約オブジェクトを使ってこのコンテナのレイアウトにコンポーネントを追加することをレイアウトマネージャに通知します。

これは、プログラムがコンテナへのすべての追加要求を追跡する必要がある場合にオーバーライドするメソッドです。オーバーライドするメソッドは、通常、メソッドのスーパークラスのバージョンの呼び出しを含む必要があります。

super.addImpl(comp, constraints, index)

オーバーライド:
クラス Container 内の addImpl
クラス java.awt.Container からコピーされたタグ:
パラメータ:
comp - 追加されるコンポーネント
constraints - このコンポーネントの配置条件を表現するオブジェクト
index - コンポーネントを挿入するコンテナのリスト内での位置。-1 は最後に挿入することを意味する
関連項目:
Container.add(java.awt.Component), Container.add(java.awt.Component, int), Container.add(java.awt.Component, java.lang.Object), LayoutManager

remove

public void remove(int index)
この区画からインデックス付きのコンポーネントを削除します。絶対インデックスであり、レイヤは無視します。
オーバーライド:
クラス Container 内の remove
パラメータ:
index - 削除するコンポーネントを指定した int 値
関連項目:
getIndexOf(java.awt.Component)

isOptimizedDrawingEnabled

public boolean isOptimizedDrawingEnabled()
区画内のコンポーネントがオーバーラップ可能である場合には false を返します。この場合、最適な描画は不可能です。そうでない場合は true を返します。
オーバーライド:
クラス JComponent 内の isOptimizedDrawingEnabled
戻り値:
コンポーネントがオーバーラップ可能である場合は false、そうでない場合は true
関連項目:
JComponent.isOptimizedDrawingEnabled()

putLayer

public static void putLayer(JComponent c,
                            int layer)
JComponent のレイヤプロパティを設定します。このメソッドは、setLayer() のような副作用 (ペイント、追加/削除など) はありません。通常は、必要な副作用 (再描画など) を得るために、インスタンスメソッドの setLayer() を使用します。
パラメータ:
c - 移動する JComponent
layer - 移動先のレイヤを指定する int 値
関連項目:
setLayer(java.awt.Component, int)

getLayer

public static int getLayer(JComponent c)
JComponent のレイヤプロパティを返します。このメソッドは、setLayer() のような副作用 (ペイント、追加/削除など) はありません。通常は、インスタンスメソッドの setLayer() を使用します。
パラメータ:
c - チェック対象の JComponent
戻り値:
コンポーネントのレイヤを指定する int 値

getLayeredPaneAbove

public static JLayeredPane getLayeredPaneAbove(Component c)
指定されたコンポーネントを含む最初の JLayeredPane を返す簡易メソッドです。すべての JFrame は、ルートに JLayeredPane を持つため、JFrame のすべてのコンポーネントは JLayeredPane を親として持ちます。
パラメータ:
c - チェック対象の Component
戻り値:
コンポーネントを含む JLayeredPane。コンポーネント階層に JLayeredPane が含まれていない場合は null
関連項目:
JFrame, JRootPane

setLayer

public void setLayer(Component c,
                     int layer)
指定されたコンポーネントのレイヤ属性を設定し、レイヤ内で一番下のコンポーネントとします。親に追加する前に呼び出さなければなりません。
パラメータ:
c - レイヤを設定する Component
layer - 設定するレイヤを指定する int 値。値が小さいほど下層

setLayer

public void setLayer(Component c,
                     int layer,
                     int position)
指定されたコンポーネントのレイヤ属性と、レイヤ内でのコンポーネントの位置を指定します。
パラメータ:
c - レイヤを設定する Component
layer - 設定するレイヤを指定する int 値。値が小さいほど下層
position - レイヤ内での位置を指定する int 値。0 が一番上、-1 が一番下

getLayer

public int getLayer(Component c)
指定された Component のレイヤ属性を返します。
パラメータ:
c - チェック対象の Component
戻り値:
コンポーネントの現在のレイヤを指定する int 値

getIndexOf

public int getIndexOf(Component c)
指定された Component のインデックスを返します。絶対インデックスであり、レイヤは無視します。インデックス番号は、位置番号と同じように、一番上のコンポーネントの番号が 0 となり、値が大きいほど下層に近くなります。
パラメータ:
c - チェック対象の Component
戻り値:
コンポーネントのインデックスを指定する int 値

moveToFront

public void moveToFront(Component c)
コンポーネントを現在のレイヤで一番上 (位置 0) に移動します。
パラメータ:
c - 移動する Component
関連項目:
setPosition(Component, int)

moveToBack

public void moveToBack(Component c)
コンポーネントを現在のレイヤで一番下 (位置 -1) に移動します。
パラメータ:
c - 移動する Component
関連項目:
setPosition(Component, int)

setPosition

public void setPosition(Component c,
                        int position)
コンポーネントを現在のレイヤの position に移動します。0 が一番上、-1 が一番下です。

注: 位置番号は java.awt.Container によって定義されており、レイヤ番号の順序の反対になっています。位置番号が小さいほど上 (0 が一番上)、大きいほど下になります。

パラメータ:
c - 移動する Component
position - -1 〜 N-1 (N は現在のレイヤのコンポーネント数) の範囲内の int 値

getPosition

public int getPosition(Component c)
レイヤ内でのコンポーネントの相対位置を返します。
パラメータ:
c - チェック対象の Component
戻り値:
コンポーネントの位置を表す int 値。0 が一番上で、最大インデックス値はレイヤ内のコンポーネント数 -1
関連項目:
getComponentCountInLayer(int)

highestLayer

public int highestLayer()
現在のすべての子から最大レイヤ値を返します。子が存在しない場合には 0 を返します。
戻り値:
区画内の一番上のコンポーネントのレイヤを示す int 値。子が存在しない場合は 0

lowestLayer

public int lowestLayer()
現在のすべての子から最小レイヤ値を返します。子が存在しない場合には 0 を返します。
戻り値:
区画内の一番下のコンポーネントのレイヤを示す int 値。子が存在しない場合は 0

getComponentCountInLayer

public int getComponentCountInLayer(int layer)
指定されたレイヤの現在の子の数を返します。
パラメータ:
layer - チェックするレイヤを指定する int 値
戻り値:
レイヤのコンポーネント数を指定する int 値

getComponentsInLayer

public Component[] getComponentsInLayer(int layer)
指定されたレイヤのコンポーネントの配列を返します。
パラメータ:
layer - チェックするレイヤを指定する int 値
戻り値:
レイヤに含まれている Component の配列

paint

public void paint(Graphics g)
指定されたグラフィックスコンテキストで、この JLayeredPane を描画します。
オーバーライド:
クラス JComponent 内の paint
パラメータ:
g - ペイント先となる Graphics コンテキスト

getComponentToLayer

protected Hashtable getComponentToLayer()
コンポーネントをレイヤにマッピングするハッシュテーブルを返します。
戻り値:
コンポーネントをレイヤにマッピングするためのハッシュテーブル

getObjectForLayer

protected Integer getObjectForLayer(int layer)
指定されたレイヤに関連した Integer オブジェクトを返します。
パラメータ:
layer - レイヤを指定する int 値
戻り値:
レイヤの Integer オブジェクト

insertIndexForLayer

protected int insertIndexForLayer(int layer,
                                  int position)
レイヤおよび位置の要求に従って新しい子を挿入する適切な位置を決定するためのプリミティブメソッドです。
パラメータ:
layer - レイヤを指定する int 値
position - レイヤ内の位置を指定する int 値
戻り値:
(絶対) 挿入インデックスを指定する int 値
関連項目:
getIndexOf(java.awt.Component)

paramString

protected String paramString()
この JLayeredPane の文字列表現を返します。このメソッドはデバッグ専用であり、返される文字列の内容および形式は実装によって異なります。返される文字列は空の場合がありますが、null にはなりません。
オーバーライド:
クラス JComponent 内の paramString
戻り値:
この JLayeredPane の文字列表現

getAccessibleContext

public AccessibleContext getAccessibleContext()
この JLayeredPane に関連した AccessibleContext を返します。階層化区画の場合、AccessibleContext は AccessibleJLayeredPane の形式を取ります。必要に応じて新規の AccessibleJLayeredPane インスタンスが作成されます。
定義:
インタフェース Accessible 内の getAccessibleContext
オーバーライド:
クラス JComponent 内の getAccessibleContext
戻り値:
この JLayeredPane の AccessibleContext として機能する AccessibleJLayeredPane

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

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.