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()
maybeUpdateLayoutState()
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, 2014, Oracle and/or its affiliates. All rights reserved.