モジュール java.desktop
パッケージ javax.swing.plaf.basic

クラスBasicListUI

直系の既知のサブクラス:
SynthListUI

public class BasicListUI extends ListUI
ListUIの拡張実装です。

BasicListUIインスタンスは複数のリスト間で共有できません。

  • ネストされたクラスのサマリー

    ネストされたクラス
    修飾子と型
    クラス
    説明
    class 
    このクラスは、「protected」内部クラスとして扱うようにしてください。
    class 
    installUI timeJListsモデルに追加されるListDataListener、およびJList.modelプロパティが変更されるたびに追加されます。
    class 
    installUI時およびJList.selectionModelプロパティ変更時にJLists選択モデルに追加されるListSelectionListenerです。
    class 
    JListのためのマウス入力およびフォーカス処理です。
    class 
    installUI時にJListに追加されるPropertyChangeListenerです。
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected int
    セルの高さ。
    protected int[]
    セルの高さの配列
    protected static final int
    このビットは、セル・レンダラの変更されたプロパティに関連しています。
    protected int
    セルの幅。
    protected static final int
    ビットは固定セルの高さ変更プロパティに関連しています。
    protected static final int
    このビットは、固定セル幅変更されたプロパティに関係します。
    protected FocusListener
    JListに添付されたFocusListener
    protected static final int
    このビットは、フォントが変更されたプロパティに関連しています。
    protected JList<Object>
    JListのインスタンス。
    JListに添付されたListDataListener
    JListに添付されたListSelectionListener
    protected static final int
    このビットは、モデル変更されたプロパティに関連しています。
    JListに添付されたMouseInputListener
    JListに添付されたPropertyChangeListener
    protected static final int
    このビットはプロト型のセル値が変更されたプロパティに関連しています。
    CellRendererPaneのインスタンス。
    protected static final int
    このビットは、選択モデルの変更されたプロパティに関連しています。
    protected int
    この値は、JListモデルの変更を表します。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    BasicListUIを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected int
    convertRowToY(int row)
    JList指定された行の原点の相対的なY座標を返します。もし行が有効でない場合は -1を返します。
    protected int
    convertYToRow(int y0)
    現在のレイアウトに基づいて、JList相対座標をその座標を含む行に変換します。
    protected FocusListener
    FocusListenerのインスタンスを返します。
    必要に応じてJListsにモデル別に追加されるListDataListenerのインスタンスを作成します。
    必要に応じてselectionModelによってJListsに追加されるListSelectionHandlerのインスタンスを作成します。
    MouseInputListenerを実装するデリゲートを作成します。
    installUI()によってJListに追加されるPropertyChangeHandlerのインスタンスを作成します。
    BasicListUIの新しいインスタンスを返します。
    int
    getBaseline(JComponent c, int width, int height)
    ベースラインを返します。
    サイズの変化に合わせてコンポーネントのベースラインがどのように変化するかを示す列挙を返します。
    getCellBounds(JList<?> list, int index1, int index2)
    2つのインデックスで指定されたセルの範囲を示す、指定されたリストの座標系内の境界矩形を返します。
    リストのpreferredSizeはレイアウト方向によって決まります。
    protected int
    getRowHeight(int row)
    現在のレイアウトに基づいて、指定された行の高さを返します。
    indexToLocation(JList<?> list, int index)
    リストの座標系内の、指定された項目の特定のJList内の原点を返します。
    protected void
    リストのプロパティ(フォント、フォアグラウンド、およびバックグラウンドなど)を初期化して、CellRendererPaneを追加します。
    protected void
    BasicListUIが関連付けられているJList上のキーボード・バインディングを登録します。
    protected void
    JList、そのモデル、およびそのselectionModelのリスナーを作成およびインストールします。
    void
    installDefaults()installListeners()、およびinstallKeyboardActions()を順番に呼び出して、this.listを初期化します。
    int
    locationToIndex(JList<?> list, Point location)
    リストの座標系内の特定の位置にもっとも近い、指定されたJList内のセル・インデックスを返します。
    protected void
    updateLayoutStateNeededがゼロでなければ、updateLayoutState()を呼び出してupdateLayoutStateNeededをリセットします。
    void
    GraphicsオブジェクトclipRectと交差する行をペイントします。
    protected void
    paintCell(Graphics g, int row, Rectangle rowBounds, ListCellRenderer<Object> cellRenderer, ListModel<Object> dataModel, ListSelectionModel selModel, int leadIndex)
    リスト・セルをペイント: 関連する状態をコンピュートし、"ラバー・スタンプ"セル・レンダラ・コンポーネントを取得し、CellRendererPaneを使用してペイントします。
    protected void
    前の行を選択して、それを強制的に可視にします。
    protected void
    前の行を選択して、それを強制的に可視にします。
    protected void
    明示的にオーバーライドされていないリスト・プロパティをnullに設定します。
    protected void
    installKeyboardActionsからインストールされたキーボード・アクションの登録を解除します。
    protected void
    JList、そのモデル、およびそのselectionModelからリスナーを削除します。
    void
    uninstallListeners()uninstallKeyboardActions()、およびuninstallDefaults()を順番に呼び出して、this.listの初期化を解除します。
    protected void
    cellHeight (またはcellHeights)およびcellWidthの値を、現在のフォントと、fixedCellWidth、fixedCellHeight、およびprototypeCellValueの現在の値を基にして計算し直します。

    クラス javax.swing.plaf.ComponentUIで宣言されたメソッド

    contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize, update

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

    • list

      protected JList<Object> list
      JListのインスタンス。
    • rendererPane

      protected CellRendererPane rendererPane
      CellRendererPaneのインスタンス。
    • focusListener

      protected FocusListener focusListener
      JListに添付されたFocusListener
    • mouseInputListener

      protected MouseInputListener mouseInputListener
      JListに添付されたMouseInputListener
    • listSelectionListener

      protected ListSelectionListener listSelectionListener
      JListに添付されたListSelectionListener
    • listDataListener

      protected ListDataListener listDataListener
      JListに添付されたListDataListener
    • propertyChangeListener

      protected PropertyChangeListener propertyChangeListener
      JListに添付されたPropertyChangeListener
    • cellHeights

      protected int[] cellHeights
      セルの高さの配列
    • cellHeight

      protected int cellHeight
      セルの高さ。
    • cellWidth

      protected int cellWidth
      セルの幅。
    • updateLayoutStateNeeded

      protected int updateLayoutStateNeeded
      この値は、JListモデルの変更を表します。
    • modelChanged

      protected static final int modelChanged
      このビットは、モデル変更されたプロパティに関連しています。
      関連項目:
    • selectionModelChanged

      protected static final int selectionModelChanged
      このビットは、選択モデルの変更されたプロパティに関連しています。
      関連項目:
    • fontChanged

      protected static final int fontChanged
      このビットは、フォントが変更されたプロパティに関連しています。
      関連項目:
    • fixedCellWidthChanged

      protected static final int fixedCellWidthChanged
      このビットは、固定セル幅変更されたプロパティに関係します。
      関連項目:
    • fixedCellHeightChanged

      protected static final int fixedCellHeightChanged
      ビットは固定セルの高さ変更プロパティに関連しています。
      関連項目:
    • prototypeCellValueChanged

      protected static final int prototypeCellValueChanged
      このビットはプロト型のセル値が変更されたプロパティに関連しています。
      関連項目:
    • cellRendererChanged

      protected static final int cellRendererChanged
      このビットは、セル・レンダラの変更されたプロパティに関連しています。
      関連項目:
  • コンストラクタの詳細

    • BasicListUI

      public BasicListUI()
      BasicListUIを構築します。
  • メソッドの詳細

    • paintCell

      protected void paintCell(Graphics g, int row, Rectangle rowBounds, ListCellRenderer<Object> cellRenderer, ListModel<Object> dataModel, ListSelectionModel selModel, int leadIndex)
      リスト・セルをペイント: 関連する状態をコンピュートし、"ラバー・スタンプ"セル・レンダラ・コンポーネントを取得し、CellRendererPaneを使用してペイントします。 サブクラスは、paint()ではなくこのメソッドをオーバーライドしたい場合があります。
      パラメータ:
      g - Graphicsのインスタンス
      row - 行
      rowBounds - レンダリングする境界矩形
      cellRenderer - ListCellRendererのリスト
      dataModel - リスト・モデル
      selModel - 選択モデル
      leadIndex - リード指数
      関連項目:
    • paint

      public void paint(Graphics g, JComponent c)
      GraphicsオブジェクトclipRectと交差する行をペイントします。 このメソッドは、必要に応じてpaintCellを呼び出します。 サブクラスは、これらのメソッドをオーバーライドできます。
      オーバーライド:
      paint、クラス: ComponentUI
      パラメータ:
      g - ペイント対象のGraphicsコンテキスト
      c - ペイントされるコンポーネント。この引数は通常無視されるが、UIオブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがある
      関連項目:
    • getBaseline

      public int getBaseline(JComponent c, int width, int height)
      ベースラインを返します。
      オーバーライド:
      getBaseline、クラス: ComponentUI
      パラメータ:
      c - ベースラインが要求されるJComponent
      width - ベースラインを取得する幅
      height - ベースラインを取得する高さ
      戻り値:
      ベースラインまたは0より小さい値(適切なベースラインがないことを示す)
      例外:
      NullPointerException - cnullである場合
      IllegalArgumentException - 幅または高さが0より小さい場合
      導入されたバージョン:
      1.6
      関連項目:
    • getBaselineResizeBehavior

      public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
      サイズの変化に合わせてコンポーネントのベースラインがどのように変化するかを示す列挙を返します。
      オーバーライド:
      getBaselineResizeBehavior、クラス: ComponentUI
      パラメータ:
      c - ベースラインのサイズ変更の動作を返すJComponent
      戻り値:
      コンポーネント・サイズの変化に合わせてベースラインがどのように変化するかを示す列挙
      例外:
      NullPointerException - cnullである場合
      導入されたバージョン:
      1.6
      関連項目:
    • getPreferredSize

      public Dimension getPreferredSize(JComponent c)
      リストのpreferredSizeはレイアウト方向によって決まります。
      配置方向ごとに推奨サイズを記述します。
      配置方向 推奨サイズ
      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以下の場合、推奨される高さは列数によって決まります。JListの幅(幅/最大セル幅)に収まる数になります(1列以上)。 推奨される高さは、モデル・サイズ/列数*セルの最大の高さになります。 セルの最大の高さは、セルの固定の高さか、またはすべてのセルを反復してListCellRendererから最大の高さを見つけることによって決まります。

      上記は、生の推奨される幅と高さです。 結果の推奨される幅は、上記の幅+insets.left+insets.right、結果の推奨される高さは、上記の高さ+insets.top+insets.bottomです。 Insetslist.getInsets()から決まります。
      オーバーライド:
      getPreferredSize、クラス: ComponentUI
      パラメータ:
      c - JListコンポーネント。
      戻り値:
      リストの総サイズ。
      関連項目:
    • selectPreviousIndex

      protected void selectPreviousIndex()
      前の行を選択して、それを強制的に可視にします。
      関連項目:
    • selectNextIndex

      protected void selectNextIndex()
      前の行を選択して、それを強制的に可視にします。
      関連項目:
    • installKeyboardActions

      protected void installKeyboardActions()
      BasicListUIが関連付けられているJList上のキーボード・バインディングを登録します。 このメソッドは、installUI()時に呼び出されます。
      関連項目:
    • uninstallKeyboardActions

      protected void uninstallKeyboardActions()
      installKeyboardActionsからインストールされたキーボード・アクションの登録を解除します。 このメソッドは、uninstallUI()時に呼び出されます。サブクラスは、installUI時に登録されたすべてのキーボード・アクションがここで削除されるようにしてください。
      関連項目:
    • installListeners

      protected void installListeners()
      JList、そのモデル、およびそのselectionModelのリスナーを作成およびインストールします。 このメソッドは、installUI()時に呼び出されます。
      関連項目:
    • uninstallListeners

      protected void uninstallListeners()
      JList、そのモデル、およびそのselectionModelからリスナーを削除します。 すべてのリスナー・フィールドはここでnullにリセットされます。 このメソッドは、uninstallUI()時に呼び出されます。installListenersとの同期を保つようにしてください。
      関連項目:
    • installDefaults

      protected void installDefaults()
      リストのプロパティ(フォント、フォアグラウンド、およびバックグラウンドなど)を初期化して、CellRendererPaneを追加します。 フォント、フォアグラウンド、およびバックグラウンド・プロパティは現在の値がnullまたはUIResourceの場合にだけ設定され、ほかのプロパティは現在の値がnullの場合に設定されます。
      関連項目:
    • uninstallDefaults

      protected void uninstallDefaults()
      明示的にオーバーライドされていないリスト・プロパティをnullに設定します。 現在の値がUIResourceでなければ、プロパティはオーバーライドされたと判断されます。
      関連項目:
    • installUI

      public void installUI(JComponent c)
      installDefaults()installListeners()、およびinstallKeyboardActions()を順番に呼び出して、this.listを初期化します。
      オーバーライド:
      installUI、クラス: ComponentUI
      パラメータ:
      c - UI委譲がインストールされるコンポーネント
      関連項目:
    • uninstallUI

      public void uninstallUI(JComponent c)
      uninstallListeners()uninstallKeyboardActions()、およびuninstallDefaults()を順番に呼び出して、this.listの初期化を解除します。 this.listはnullに設定されます。
      オーバーライド:
      uninstallUI、クラス: ComponentUI
      パラメータ:
      c - このUI委譲が削除されるコンポーネント。この引数は通常無視されるが、UIオブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがある
      関連項目:
    • createUI

      public static ComponentUI createUI(JComponent list)
      BasicListUIの新しいインスタンスを返します。 BasicListUIデリゲートは、JListごとに1つ割り当てられます。
      パラメータ:
      list - コンポーネント
      戻り値:
      Windowsのルック・アンド・フィールのための新しいListUI実装。
    • locationToIndex

      public int locationToIndex(JList<?> list, Point location)
      リストの座標系内の特定の位置にもっとも近い、指定されたJList内のセル・インデックスを返します。 セルが実際にその指定された位置を含むかどうかを判定するには、その点と、getCellBoundsで提供されるセルの境界とを比較します。 このメソッドは、リストのモデルが空の場合、-1を返します。
      定義:
      locationToIndex、クラス: ListUI
      パラメータ:
      list - リスト
      location - 点の座標
      戻り値:
      指定された位置にもっとも近いセル・インデックス、または-1
      例外:
      NullPointerException - locationがnullである場合
    • indexToLocation

      public Point indexToLocation(JList<?> list, int index)
      リストの座標系内の、指定された項目の特定のJList内の原点を返します。 インデックスが無効な場合nullを返します。
      定義:
      indexToLocation、クラス: ListUI
      パラメータ:
      list - リスト
      index - セルのインデックス
      戻り値:
      セルの原点、またはnull
    • getCellBounds

      public Rectangle getCellBounds(JList<?> list, int index1, int index2)
      2つのインデックスで指定されたセルの範囲を示す、指定されたリストの座標系内の境界矩形を返します。 これらのインデックスは、任意の順序で指定できます。

      小さいほうのインデックスがリストのセルの範囲外にある場合、このメソッドはnullを返します。 小さいほうのインデックスが有効であっても、大きいほうのインデックスがリストの範囲外にある場合、最初のインデックスの境界だけが返されます。 そうでない場合、有効な範囲の境界が返されます。

      定義:
      getCellBounds、クラス: ListUI
      パラメータ:
      list - リスト
      index1 - 範囲の1番目のインデックス
      index2 - 範囲の2番目のインデックス
      戻り値:
      セルの範囲を示す境界の矩形、またはnull
    • getRowHeight

      protected int getRowHeight(int row)
      現在のレイアウトに基づいて、指定された行の高さを返します。
      パラメータ:
      row - 行
      戻り値:
      指定された行の高さ、または行が有効でない場合は -1
      関連項目:
    • convertYToRow

      protected int convertYToRow(int y0)
      現在のレイアウトに基づいて、JList相対座標をその座標を含む行に変換します。 y0がいずれの行にも含まれない場合は、 -1を返します。
      パラメータ:
      y0 - 相対的なY座標
      戻り値:
      y0または -1を含む行
      関連項目:
    • convertRowToY

      protected int convertRowToY(int row)
      JList指定された行の原点の相対的なY座標を返します。もし行が有効でない場合は -1を返します。
      パラメータ:
      row - 行
      戻り値:
      行の原点のY座標、または -1
      関連項目:
    • maybeUpdateLayoutState

      protected void maybeUpdateLayoutState()
      updateLayoutStateNeededがゼロでなければ、updateLayoutState()を呼び出してupdateLayoutStateNeededをリセットします。 このメソッドは、リストのジオメトリに基づく計算をする前のメソッドで呼び出すようにしてください。 たとえば、paint()およびgetPreferredSize()で最初に呼び出します。
      関連項目:
    • updateLayoutState

      protected void updateLayoutState()
      cellHeight (またはcellHeights)およびcellWidthの値を、現在のフォントと、fixedCellWidth、fixedCellHeight、およびprototypeCellValueの現在の値を基にして計算し直します。
      関連項目:
    • createMouseInputListener

      protected MouseInputListener createMouseInputListener()
      MouseInputListenerを実装するデリゲートを作成します。 デリゲートは、installUI()時間に対応するjava.awt.Componentリスナー・リストに追加されます。 サブクラスはこのメソッドをオーバーライドしてカスタムMouseInputListenerを返します。
       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);
              }
          }
       }
       
      戻り値:
      MouseInputListenerのインスタンス
      関連項目:
    • createFocusListener

      protected FocusListener createFocusListener()
      FocusListenerのインスタンスを返します。
      戻り値:
      FocusListenerのインスタンス
    • createListSelectionListener

      protected ListSelectionListener createListSelectionListener()
      必要に応じてselectionModelによってJListsに追加されるListSelectionHandlerのインスタンスを作成します。 サブクラスはこのメソッドをオーバーライドしてカスタムListSelectionListenerを返します。
       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);
              }
          }
       }
       
      戻り値:
      ListSelectionHandlerのインスタンス
      関連項目:
    • createListDataListener

      protected ListDataListener createListDataListener()
      必要に応じてJListsにモデル別に追加されるListDataListenerのインスタンスを作成します。 サブクラスはこのメソッドをオーバーライドしてカスタムListDataListenerを返します。
       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);
              }
          }
       }
       
      戻り値:
      ListDataListenerのインスタンス
      関連項目:
    • createPropertyChangeListener

      protected PropertyChangeListener createPropertyChangeListener()
      installUI()によってJListに追加されるPropertyChangeHandlerのインスタンスを作成します。 サブクラスはこのメソッドをオーバーライドしてカスタムPropertyChangeListenerを返します。
       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);
              }
          }
       }
       
      戻り値:
      PropertyChangeHandlerのインスタンス
      関連項目: