public class BasicListUI extends ListUI
ListUI
の拡張実装です。
BasicListUI
インスタンスは複数のリスト間で共有できません。
修飾子と型 | クラスと説明 |
---|---|
class |
BasicListUI.FocusHandler
このクラスは、「protected」内部クラスとして扱うようにしてください。
|
class |
BasicListUI.ListDataHandler
installUI 時および JList.model プロパティー変更時に JList モデルに追加される ListDataListener です。
|
class |
BasicListUI.ListSelectionHandler
installUI 時および JList.selectionModel プロパティー変更時に JLists 選択モデルに追加される ListSelectionListener です。
|
class |
BasicListUI.MouseInputHandler
JList のためのマウス入力およびフォーカス処理です。
|
class |
BasicListUI.PropertyChangeHandler
installUI 時に JList に追加される PropertyChangeListener です。
|
修飾子と型 | フィールドと説明 |
---|---|
protected int |
cellHeight |
protected int[] |
cellHeights |
protected static int |
cellRendererChanged |
protected int |
cellWidth |
protected static int |
fixedCellHeightChanged |
protected static int |
fixedCellWidthChanged |
protected FocusListener |
focusListener |
protected static int |
fontChanged |
protected JList |
list |
protected ListDataListener |
listDataListener |
protected ListSelectionListener |
listSelectionListener |
protected static int |
modelChanged |
protected MouseInputListener |
mouseInputListener |
protected PropertyChangeListener |
propertyChangeListener |
protected static int |
prototypeCellValueChanged |
protected CellRendererPane |
rendererPane |
protected static int |
selectionModelChanged |
protected int |
updateLayoutStateNeeded |
コンストラクタと説明 |
---|
BasicListUI() |
修飾子と型 | メソッドと説明 |
---|---|
protected int |
convertRowToY(int row)
指定された行の原点の JList 相対 Y 座標を返します。行が無効な場合は -1 を返します。
|
protected int |
convertYToRow(int y0)
現在のレイアウトを基にして、JList 相対座標をそれを含む行に変換します。
|
protected FocusListener |
createFocusListener() |
protected ListDataListener |
createListDataListener()
モデルによって必要に応じて JList に追加される、ListDataListener のインスタンスを作成します。
|
protected ListSelectionListener |
createListSelectionListener()
selectionModel によって必要に応じて JList に追加される、ListSelectionHandler のインスタンスを作成します。
|
protected MouseInputListener |
createMouseInputListener()
MouseInputListener を実装する委譲を作成します。
|
protected PropertyChangeListener |
createPropertyChangeListener()
installUI() によって JList に追加される、PropertyChangeHandler のインスタンスを作成します。
|
static ComponentUI |
createUI(JComponent list)
BasicListUI の新しいインスタンスを返します。
|
int |
getBaseline(JComponent c, int width, int height)
ベースラインを返します。
|
Component.BaselineResizeBehavior |
getBaselineResizeBehavior(JComponent c)
サイズの変化に合わせてコンポーネントのベースラインがどのように変化するかを示す列挙を返します。
|
Rectangle |
getCellBounds(JList list, int index1, int index2)
2 つのインデックスで指定されたセルの範囲を示す、指定されたリストの座標系内の境界矩形を返します。
|
Dimension |
getPreferredSize(JComponent c)
リストの preferredSize はレイアウト方向によって決まります。
|
protected int |
getRowHeight(int row)
現在のレイアウトに基づいて、指定された行の高さを返します。
|
Point |
indexToLocation(JList list, int index)
リストの座標系内の、指定された項目の特定の
JList 内の原点を返します。 |
protected void |
installDefaults()
リストのプロパティー (フォント、フォアグラウンド、およびバックグラウンドなど) を初期化して、CellRendererPane を追加します。
|
protected void |
installKeyboardActions()
BasicListUI が関連付けられている JList 上のキーボードバインディングを登録します。 |
protected void |
installListeners()
JList、そのモデル、およびその selectionModel のリスナーを作成およびインストールします。
|
void |
installUI(JComponent c)
installDefaults() 、installListeners() 、および installKeyboardActions() を順番に呼び出して、this.list を初期化します。 |
int |
locationToIndex(JList list, Point location)
リストの座標系内の特定の位置にもっとも近い、指定された
JList 内のセルインデックスを返します。 |
protected void |
maybeUpdateLayoutState()
updateLayoutStateNeeded がゼロでなければ、updateLayoutState() を呼び出して updateLayoutStateNeeded をリセットします。
|
void |
paint(Graphics g, JComponent c)
Graphics オブジェクト clipRect と交差する行をペイントします。
|
protected void |
paintCell(Graphics g, int row, Rectangle rowBounds, ListCellRenderer cellRenderer, ListModel dataModel, ListSelectionModel selModel, int leadIndex)
1 つの List セルをペイントします。適切な状態を計算し、「ラバースタンプ」セルレンダラコンポーネントを取得してから、CellRendererPane を使用してペイントします。
|
protected void |
selectNextIndex()
前の行を選択して、それを強制的に可視にします。
|
protected void |
selectPreviousIndex()
前の行を選択して、それを強制的に可視にします。
|
protected void |
uninstallDefaults()
明示的にオーバーライドされていないリストプロパティーを
null に設定します。 |
protected void |
uninstallKeyboardActions()
installKeyboardActions からインストールされたキーボードアクションの登録を解除します。 |
protected void |
uninstallListeners()
JList、そのモデル、およびその selectionModel からリスナーを削除します。
|
void |
uninstallUI(JComponent c)
uninstallListeners() 、uninstallKeyboardActions() 、および uninstallDefaults() を順番に呼び出して、this.list の初期化を解除します。 |
protected void |
updateLayoutState()
cellHeight (または cellHeights) および cellWidth の値を、現在のフォントと、fixedCellWidth、fixedCellHeight、および prototypeCellValue の現在の値を基にして計算し直します。
|
contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize, update
protected JList list
protected CellRendererPane rendererPane
protected FocusListener focusListener
protected MouseInputListener mouseInputListener
protected ListSelectionListener listSelectionListener
protected ListDataListener listDataListener
protected PropertyChangeListener propertyChangeListener
protected int[] cellHeights
protected int cellHeight
protected int cellWidth
protected int updateLayoutStateNeeded
protected static final int modelChanged
protected static final int selectionModelChanged
protected static final int fontChanged
protected static final int fixedCellWidthChanged
protected static final int fixedCellHeightChanged
protected static final int prototypeCellValueChanged
protected static final int cellRendererChanged
protected void paintCell(Graphics g, int row, Rectangle rowBounds, ListCellRenderer cellRenderer, ListModel dataModel, ListSelectionModel selModel, int leadIndex)
public void paint(Graphics g, JComponent c)
paint
、クラス: ComponentUI
g
- ペイント対象の Graphics
コンテキストc
- ペイントされるコンポーネント。この引数は通常無視されるが、UI オブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがあるpaintCell(java.awt.Graphics, int, java.awt.Rectangle, javax.swing.ListCellRenderer, javax.swing.ListModel, javax.swing.ListSelectionModel, int)
public int getBaseline(JComponent c, int width, int height)
getBaseline
、クラス: ComponentUI
c
- ベースラインが要求される JComponent
width
- ベースラインを取得する幅height
- ベースラインを取得する高さNullPointerException
- c
が null
である場合IllegalArgumentException
- 幅または高さが 0 より小さい場合JComponent.getBaseline(int, int)
public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
getBaselineResizeBehavior
、クラス: ComponentUI
c
- ベースラインのサイズ変更の動作を返す JComponent
NullPointerException
- c
が null
である場合JComponent.getBaseline(int, int)
public Dimension getPreferredSize(JComponent c)
配置方向 | 推奨サイズ |
---|---|
JList.VERTICAL | リストの preferredSize は、行の高さの合計と、セルの最大幅です。JList.fixedCellHeight が指定されている場合、行の高さの合計は (cellVerticalMargins + fixedCellHeight) * model.getSize() になります。rowVerticalMargins は、黄色いフォーカスアウトラインを描画するために割り当てる領域です。同様に、fixedCellWidth が指定されている場合は、それを使用します。 |
JList.VERTICAL_WRAP | 可視の行数が 0 より大きい場合、preferredHeight は、セルの最大の高さ * visibleRowCount になります。可視の行数が 0 以下の場合、推奨される高さは、現在のリストの高さと、セルの最大の高さのうちの高いほうになります。推奨される幅は、セルの最大幅 * 必要な列数、になります。ここで、必要な列数はリストの高さ/セルの最大の高さです。セルの最大の高さは、セルの固定の高さか、またはすべてのセルを反復して ListCellRenderer から最大の高さを見つけることによって決まります。 |
JList.HORIZONTAL_WRAP | 可視の行数が 0 より大きい場合、preferredHeight は、セルの最大の高さ * adjustedRowCount になります。visibleRowCount は、列数を決めるために使用されます。水平に配置するため、行数は列数から決まります。たとえば、10 項目のモデルで可視行数が 8 だとします。表示に必要な列は 2 列ですが、8 行も必要なく、5 行で済みます。したがって、adjustedRowCount は 5 になります。
可視行数が 0 以下の場合、推奨される高さは列数によって決まります。 |
Insets
は list.getInsets()
から決まります。getPreferredSize
、クラス: ComponentUI
c
- JList コンポーネント。JComponent.getPreferredSize()
, LayoutManager.preferredLayoutSize(java.awt.Container)
protected void selectPreviousIndex()
protected void selectNextIndex()
protected void installKeyboardActions()
BasicListUI
が関連付けられている JList
上のキーボードバインディングを登録します。このメソッドは、installUI() 時に呼び出されます。protected void uninstallKeyboardActions()
installKeyboardActions
からインストールされたキーボードアクションの登録を解除します。このメソッドは、uninstallUI() 時に呼び出されます。サブクラスは、installUI 時に登録されたすべてのキーボードアクションがここで削除されるようにしてください。protected void installListeners()
protected void uninstallListeners()
protected void installDefaults()
protected void uninstallDefaults()
null
に設定します。現在の値が UIResource
でなければ、プロパティーはオーバーライドされたと判断されます。public void installUI(JComponent c)
installDefaults()
、installListeners()
、および installKeyboardActions()
を順番に呼び出して、this.list
を初期化します。installUI
、クラス: ComponentUI
c
- UI 委譲がインストールされるコンポーネントinstallDefaults()
, installListeners()
, installKeyboardActions()
public void uninstallUI(JComponent c)
uninstallListeners()
、uninstallKeyboardActions()
、および uninstallDefaults()
を順番に呼び出して、this.list
の初期化を解除します。this.list は null に設定されます。uninstallUI
、クラス: ComponentUI
c
- この UI 委譲が削除されるコンポーネント。この引数は通常無視されるが、UI オブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがあるuninstallListeners()
, uninstallKeyboardActions()
, uninstallDefaults()
public static ComponentUI createUI(JComponent list)
public int locationToIndex(JList list, Point location)
JList
内のセルインデックスを返します。セルが実際にその指定された位置を含むかどうかを判定するには、その点と、getCellBounds
で提供されるセルの境界とを比較します。このメソッドは、リストのモデルが空の場合、-1
を返します。locationToIndex
、クラス: ListUI
list
- リストlocation
- 点の座標-1
NullPointerException
- location
が null である場合public Point indexToLocation(JList list, int index)
JList
内の原点を返します。インデックスが無効な場合 null
を返します。indexToLocation
、クラス: ListUI
list
- リストindex
- セルのインデックスnull
public Rectangle getCellBounds(JList list, int index1, int index2)
小さいほうのインデックスがリストのセルの範囲外にある場合、このメソッドは null
を返します。小さいほうのインデックスが有効であっても、大きいほうのインデックスがリストの範囲外にある場合、最初のインデックスの境界だけが返されます。そうでない場合、有効な範囲の境界が返されます。
getCellBounds
、クラス: ListUI
list
- リストindex1
- 範囲の 1 番目のインデックスindex2
- 範囲の 2 番目のインデックスnull
protected int getRowHeight(int row)
convertYToRow(int)
, convertRowToY(int)
, updateLayoutState()
protected int convertYToRow(int y0)
getRowHeight(int)
, updateLayoutState()
protected int convertRowToY(int row)
getRowHeight(int)
, updateLayoutState()
protected void maybeUpdateLayoutState()
updateLayoutState()
protected void updateLayoutState()
protected MouseInputListener createMouseInputListener()
class MyListUI extends BasicListUI { protected MouseInputListener createMouseInputListener() { return new MyMouseInputHandler(); } public class MyMouseInputHandler extends MouseInputHandler { public void mouseMoved(MouseEvent e) { // do some extra work when the mouse moves super.mouseMoved(e); } } }
protected FocusListener createFocusListener()
protected ListSelectionListener createListSelectionListener()
class MyListUI extends BasicListUI { protected ListSelectionListener createListSelectionListener() { return new MySelectionListener(); } public class MySelectionListener extends ListSelectionHandler { public void valueChanged(ListSelectionEvent e) { // do some extra work when the selection changes super.valueChange(e); } } }
protected ListDataListener createListDataListener()
class MyListUI extends BasicListUI { protected ListDataListener createListDataListener() { return new MyListDataListener(); } public class MyListDataListener extends ListDataHandler { public void contentsChanged(ListDataEvent e) { // do some extra work when the models contents change super.contentsChange(e); } } }
protected PropertyChangeListener createPropertyChangeListener()
class MyListUI extends BasicListUI { protected PropertyChangeListener createPropertyChangeListener() { return new MyPropertyChangeListener(); } public class MyPropertyChangeListener extends PropertyChangeHandler { public void propertyChange(PropertyChangeEvent e) { if (e.getPropertyName().equals("model")) { // do some extra work when the model changes } super.propertyChange(e); } } }
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.