|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--javax.swing.JComponent | +--javax.swing.JList
ユーザがリストから 1 つまたは複数のオブジェクトを選択するためのコンポーネントです。別のモデルである ListModel
は、リストの内容を表します。ListModel
のインスタンスを生成する JList
コンストラクタを使用すれば、オブジェクトの配列またはベクタを簡単に表示できます。
// Create a JList that displays the strings in data[] String[] data = {"one", "two", "three", "four"}; JList dataList = new JList(data); // The value of the JList model property is an object that provides // a read-only view of the data. It was constructed automatically. for(int i = 0; i < dataList.getModel().getSize(); i++) { System.out.println(dataList.getModel().getElementAt(i)); } // Create a JList that displays the superclass of JList.class. // We store the superclasses in a java.util.Vector. Vector superClasses = new Vector(); Class rootClass = javax.swing.JList.class; for(Class cls = rootClass; cls != null; cls = cls.getSuperclass()) { superClasses.addElement(cls); } JList classList = new JList(superClasses);
JList
はスクロールを直接サポートしていません。スクロールリストを作成するには、JList
を JScrollPane
のビューポートビューとして設定します。次に例を示します。
JScrollPane scrollPane = new JScrollPane(dataList); // Or in two steps: JScrollPane scrollPane = new JScrollPane(); scrollPane.getViewport().setView(dataList);
デフォルトでは、定数 MULTIPLE_INTERVAL_SELECTION
を使って、JList
の選択モデルにより項目の組み合わせを一度に選択することができます。選択状態は実際には個別の委譲オブジェクト、ListSelectionModel
のインスタンスで管理されています。ただし、JList
では選択管理に便利なプロパティが提供されます。
String[] data = {"one", "two", "three", "four"}; JList dataList = new JList(data); dataList.setSelectedIndex(1); // select "two" dataList.getSelectedValue(); // returns "two"
JList
の内容は動的です。つまり、JList
の作成後にリスト要素の値やリストのサイズを変更できます。JList
は、swing.event.ListDataListener
実装によってモデルの変更を監視します。ListModel
が正しく実装されていれば、変更が発生するたびにリスナーに通知します。変更は、修正、追加、または削除されたリストインデックスの範囲を識別する swing.event.ListDataEvent
によって記述されます。単純な動的内容の JList
アプリケーションは、DefaultListModel
クラスを使用してリスト要素を格納できます。このクラスは、ListModel
インタフェースを実装し、java.util.Vector
API も提供します。カスタム ListModel
実装を提供する必要があるアプリケーションは、基本的な ListDataListener
サポートを提供する AbstractListModel
をサブクラス化することができます。次に例を示します。
// This list model has about 2^16 elements. Enjoy scrolling. ListModel bigData = new AbstractListModel() { public int getSize() { return Short.MAX_VALUE; } public Object getElementAt(int index) { return "Index " + index; } }; JList bigDataList = new JList(bigData); // We don't want the JList implementation to compute the width // or height of all of the list cells, so we give it a string // that's as big as we'll need for any cell. It uses this to // compute values for the fixedCellWidth and fixedCellHeight // properties. bigDataList.setPrototypeCellValue("Index 1234567890");
JList
は、cellRenderer
を呼び出す委譲によって提供される java.awt.Component
を使用して、リスト内で可視セルを描画します。可視の各行は、セルレンダリングコンポーネントを「ゴムスタンプ」のように使用して描画されます。JList
は、セルを描画する必要があるたびに、セルレンダリングにコンポーネントを要求し、setBounds()
を使用して適切な場所に配置してから、レンダリングの描画メソッドを呼び出して描画します。デフォルトのセルレンダリングは、JLabel
コンポーネントを使用して、各コンポーネントの文字列値を描画します。次のようなコードにより、自分のセルレンダリングを使用することもできます。
// Display an icon and a string for each object in the list. class MyCellRenderer extends JLabel implements ListCellRenderer { final static ImageIcon longIcon = new ImageIcon("long.gif"); final static ImageIcon shortIcon = new ImageIcon("short.gif"); // This is the only method defined by ListCellRenderer. // We just reconfigure the JLabel each time we're called. public Component getListCellRendererComponent( JList list, Object value, // value to display int index, // cell index boolean isSelected, // is the cell selected boolean cellHasFocus) // the list and the cell have the focus { String s = value.toString(); setText(s); setIcon((s.length() > 10) ? longIcon : shortIcon); if (isSelected) { setBackground(list.getSelectionBackground()); setForeground(list.getSelectionForeground()); } else { setBackground(list.getBackground()); setForeground(list.getForeground()); } setEnabled(list.isEnabled()); setFont(list.getFont()); setOpaque(true); return this; } } String[] data = {"one", "two", "three", "four"}; JList dataList = new JList(data); dataList.setCellRenderer(new MyCellRenderer());
JList
は、ダブルクリックやトリプル (およびそれ以上の回数の) クリックを特別にはサポートしていませんが、MouseListener
を利用すればそれらを簡単に処理することができます。クリックされたセルを調べるには、JList
の locationToIndex()
メソッドを使用します。次に例を示します。
final JList list = new JList(dataModel); MouseListener mouseListener = new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { int index = list.locationToIndex(e.getPoint()); System.out.println("Double clicked on Item " + index); } } }; list.addMouseListener(mouseListener);この例では、
dataList
は匿名の MouseListener
クラスによって参照されているため、final
となっています。
標準の Look & Feel (L&F) 表現でこのコンポーネントが使用するキーボードのキーについては、JList
のキーの割り当てを参照してください。
警告:
このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。1.4 では、すべての JavaBeansTM の長期間の運用に対するサポートが java.beans
パッケージに追加されました。XMLEncoder
を参照してください。
詳細は、「The Java Tutorial」の「How to Use Lists」を参照してください。また、「The Swing Connection」 の「Advanced JList Programming」も参照してください。
ListModel
,
AbstractListModel
,
DefaultListModel
,
ListSelectionModel
,
DefaultListSelectionModel
,
ListCellRenderer
入れ子クラスの概要 | |
protected class |
JList.AccessibleJList
このクラスは JList クラス用のユーザ補助機能のサポートを実装しています。 |
クラス javax.swing.JComponent から継承した入れ子クラス |
|
クラス java.awt.Container から継承した入れ子クラス |
|
クラス java.awt.Component から継承した入れ子クラス |
Component.BltBufferStrategy, Component.FlipBufferStrategy |
フィールドの概要 | |
static int |
HORIZONTAL_WRAP
セルが水平方向の次に垂直方向の順で並ぶ「ニュースペーパースタイル」レイアウトを示します。 |
static int |
VERTICAL
デフォルトのレイアウトを示します。 |
static int |
VERTICAL_WRAP
セルが垂直方向の次に水平方向の順で並ぶ「ニュースペーパースタイル」レイアウトを示します。 |
クラス 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 |
コンストラクタの概要 | |
JList()
空のモデルで JList を構築します。 |
|
JList(ListModel dataModel)
指定された null 以外のモデルの要素を表示する JList を構築します。 |
|
JList(Object[] listData)
指定された配列の要素を表示する JList を構築します。 |
|
JList(Vector listData)
指定された Vector の要素を表示する JList を構築します。 |
メソッドの概要 | |
void |
addListSelectionListener(ListSelectionListener listener)
選択が変更されるたびに通知されるリストにリスナーを追加します。 |
void |
addSelectionInterval(int anchor,
int lead)
指定された区間を現在の選択に加えます。 |
void |
clearSelection()
選択をクリアします。 |
protected ListSelectionModel |
createSelectionModel()
DefaultListSelectionModel のインスタンスを返します。 |
void |
ensureIndexIsVisible(int index)
ビューポートをスクロールし、指定されたセルを完全に可視にします。 |
protected void |
fireSelectionValueChanged(int firstIndex,
int lastIndex,
boolean isAdjusting)
選択モデルが変更されたことを JList の ListSelectionListener に通知します。 |
AccessibleContext |
getAccessibleContext()
この JList に関連した AccessibleContext を返します。 |
int |
getAnchorSelectionIndex()
最後の addSelectionModel または setSelectionInterval 呼び出しにおける最初のインデックス引数を返します。 |
Rectangle |
getCellBounds(int index0,
int index1)
JList 座標で指定された項目範囲の境界を返します。 |
ListCellRenderer |
getCellRenderer()
リスト項目を描画するオブジェクトを返します。 |
boolean |
getDragEnabled()
dragEnabled プロパティを取得します。 |
int |
getFirstVisibleIndex()
最初の可視セルのインデックスを返します。 |
int |
getFixedCellHeight()
固定セル高の値を返します。 |
int |
getFixedCellWidth()
固定セル幅の値を返します。 |
int |
getLastVisibleIndex()
最後の可視セルのインデックスを返します。 |
int |
getLayoutOrientation()
レイアウトがセルの単一の列の場合は JList.VERTICAL 、コンテンツが垂直方向の次に水平方向の順に並ぶ「ニュースペーパースタイル」の場合は JList.VERTICAL_WRAP 、コンテンツが水平方向の次に垂直方向の順に並ぶ「ニュースペーパースタイル」の場合は JList.HORIZONTAL_WRAP を返します。 |
int |
getLeadSelectionIndex()
最後の addSelectionInterval または setSelectionInterval 呼び出しにおける 2 番目のインデックス引数を返します。 |
ListSelectionListener[] |
getListSelectionListeners()
この JList に addListSelectionListener() で追加されたすべての ListSelectionListener の配列を返します。 |
int |
getMaxSelectionIndex()
選択されているセルの最大インデックスを返します。 |
int |
getMinSelectionIndex()
選択されているセルの最小インデックスを返します。 |
ListModel |
getModel()
JList コンポーネントによって表示される項目のリストを保持するデータモデルを返します。 |
int |
getNextMatch(String prefix,
int startIndex,
Position.Bias bias)
接頭辞で始まる、次のリスト要素を返します。 |
Dimension |
getPreferredScrollableViewportSize()
visibleRowCount の行を表示するために必要なビューポートのサイズを計算します。 |
Object |
getPrototypeCellValue()
「プロトタイプセル」のセル幅を返します。 |
int |
getScrollableBlockIncrement(Rectangle visibleRect,
int orientation,
int direction)
次または前のブロックを表示するためにスクロールする距離を返します。 |
boolean |
getScrollableTracksViewportHeight()
この JList が JViewport に表示され、ビューポートが JList の適切な高さよりも高い場合、またはレイアウト方向が VERTICAL_WRAP であり、可視行カウントが <= 0 の場合は true を返します。 |
boolean |
getScrollableTracksViewportWidth()
この JList が JViewport に表示され、ビューポートが JList の適切な幅よりも広い場合、またはレイアウト方向が HORIZONTAL_WRAP であり、可視行カウントが <= 0 の場合は true を返します。 |
int |
getScrollableUnitIncrement(Rectangle visibleRect,
int orientation,
int direction)
前または次の行 (垂直スクロール)、または文字 (水平スクロール) を表示するためにスクロールする距離を返します。 |
int |
getSelectedIndex()
最初に選択されたインデックスを返すか、選択項目がない場合は -1 を返します。 |
int[] |
getSelectedIndices()
選択されているすべてのインデックスの昇順配列を返します。 |
Object |
getSelectedValue()
最初に選択されたインデックスを返すか、選択が空の場合は null を返します。 |
Object[] |
getSelectedValues()
選択されたセルの値の配列を返します。 |
Color |
getSelectionBackground()
選択されたセルのバックグラウンドカラーを返します。 |
Color |
getSelectionForeground()
フォアグラウンドカラーの選択を返します。 |
int |
getSelectionMode()
単一項目選択または複数項目選択のどちらが許容されているかを返します。 |
ListSelectionModel |
getSelectionModel()
現在の選択モデルの値を返します。 |
String |
getToolTipText(MouseEvent event)
JComponent の getToolTipText メソッドをオーバーライドして、レンダリングのヒント (テキストセットがある場合) を使用できるようにします。
|
ListUI |
getUI()
このコンポーネントを描画する Look & Feel (L&F) オブジェクトを返します。 |
String |
getUIClassID()
Look & Feel (L&F) クラスの名前の構築に使用された接頭辞を返します。 |
boolean |
getValueIsAdjusting()
データモデルの isAdjusting プロパティの値を返します。 |
int |
getVisibleRowCount()
可視行の適切な数を返します。 |
Point |
indexToLocation(int index)
指定された項目の JList 座標における原点を返します。 |
boolean |
isSelectedIndex(int index)
指定されたインデックスが選択されている場合は true を返します。 |
boolean |
isSelectionEmpty()
何も選択されていない場合は true を返します。 |
int |
locationToIndex(Point location)
JList の座標上の点をその位置にあるセルのインデックスに変換します。 |
protected String |
paramString()
この JList の文字列表現を返します。 |
void |
removeListSelectionListener(ListSelectionListener listener)
選択が変更されるたびに通知されるリスナーをリストから削除します。 |
void |
removeSelectionInterval(int index0,
int index1)
選択範囲を、指定された区間と現在の選択範囲との差集合に設定します。 |
void |
setCellRenderer(ListCellRenderer cellRenderer)
リスト内の各セルを描画する委譲を設定します。 |
void |
setDragEnabled(boolean b)
dragEnabled プロパティを設定します。 |
void |
setFixedCellHeight(int height)
リストにあるすべてのセルの高さを設定します。 |
void |
setFixedCellWidth(int width)
リストにあるすべてのセルの幅を設定します。 |
void |
setLayoutOrientation(int layoutOrientation)
リストのセルの配置方法を定義します。 |
void |
setListData(Object[] listData)
Object の配列から ListModel を構築し、setModel を適用します。 |
void |
setListData(Vector listData)
Vector から ListModel を構築し、setModel を適用します。 |
void |
setModel(ListModel model)
リストの内容または「値」を表すモデルを設定し、 PropertyChangeListener への通知後にリストの選択物をクリアします。
|
void |
setPrototypeCellValue(Object prototypeCellValue)
fixedCellWidth および fixedCellHeight プロパティを計算します。 |
void |
setSelectedIndex(int index)
単一セルを選択します。 |
void |
setSelectedIndices(int[] indices)
セルのセットを選択します。 |
void |
setSelectedValue(Object anObject,
boolean shouldScroll)
指定されたオブジェクトをリストから選択します。 |
void |
setSelectionBackground(Color selectionBackground)
選択されたセルのバックグラウンドカラーを設定します。 |
void |
setSelectionForeground(Color selectionForeground)
選択されたセルのフォアグラウンドカラーを設定します。 |
void |
setSelectionInterval(int anchor,
int lead)
指定された区間を選択します。 |
void |
setSelectionMode(int selectionMode)
単一項目選択または複数項目選択が可能かどうかを判定します。 |
void |
setSelectionModel(ListSelectionModel selectionModel)
リストの selectionModel を null ではない ListSelectionModel 実装に設定します。 |
void |
setUI(ListUI ui)
このコンポーネントを描画する Look & Feel (L&F) オブジェクトを設定します。 |
void |
setValueIsAdjusting(boolean b)
データモデルの isAdjusting プロパティを true に設定し、すべての選択イベント (選択モードでリスト項目上をマウスでドラッグしている場合など) が完了した時点で単一イベントが生成されるようにします。 |
void |
setVisibleRowCount(int visibleRowCount)
スクロールバーを使用せずに表示できるリスト内の行の適切な数を設定します。 |
void |
updateUI()
現在の Look & Feel からの値を持つ UI プロパティをリセットします。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
フィールドの詳細 |
public static final int VERTICAL
setLayoutOrientation(int)
,
定数フィールド値public static final int VERTICAL_WRAP
setLayoutOrientation(int)
,
定数フィールド値public static final int HORIZONTAL_WRAP
setLayoutOrientation(int)
,
定数フィールド値コンストラクタの詳細 |
public JList(ListModel dataModel)
null
以外のモデルの要素を表示する JList
を構築します。すべての JList
コンストラクタは、このオブジェクトに委譲します。
dataModel
- このリストのデータモデル
IllegalArgumentException
- dataModel
が null
の場合public JList(Object[] listData)
JList
を構築します。このコンストラクタは、ListModel
コンストラクタに委譲します。
listData
- データモデルにロードされる Object の配列public JList(Vector listData)
Vector
の要素を表示する JList
を構築します。このコンストラクタは、ListModel
コンストラクタに委譲します。
listData
- データモデルにロードされる Vector
public JList()
JList
を構築します。
メソッドの詳細 |
public ListUI getUI()
ListUI
オブジェクトpublic void setUI(ListUI ui)
ui
- ListUI
L&F オブジェクトUIDefaults.getUI(javax.swing.JComponent)
public void updateUI()
JComponent
内の updateUI
UIManager.getUI(javax.swing.JComponent)
public String getUIClassID()
JComponent
内の getUIClassID
JComponent.getUIClassID()
,
UIDefaults.getUI(javax.swing.JComponent)
public Object getPrototypeCellValue()
prototypeCellValue
プロパティの値setPrototypeCellValue(java.lang.Object)
public void setPrototypeCellValue(Object prototypeCellValue)
fixedCellWidth
および fixedCellHeight
プロパティを計算します。インデックス 0 の cellRenderer
を指定値に設定してから、レンダリングコンポーネントの優先サイズを計算します。リストが長すぎて JList
が各セルの幅と高さを計算できず、他のセルと同じスペースを持つことがわかっているセルがある場合には、このプロパティが便利です。
fixedCellWidth
および fixedCellHeight
プロパティをここで設定しても、prototypeCellValue
だけで PropertyChangeEvent
がトリガされることに注意してください。
このプロパティの設定例を参照するには、上記のクラスの説明を参照してください。
このプロパティのデフォルト値は null
です。
これは JavaBeans バウンドプロパティです。
prototypeCellValue
- fixedCellWidth
および fixedCellHeight
のベースとなる値getPrototypeCellValue()
,
setFixedCellWidth(int)
,
setFixedCellHeight(int)
,
JComponent.addPropertyChangeListener(java.beans.PropertyChangeListener)
public int getFixedCellWidth()
fixedCellWidth
プロパティで指定されている値です。
setFixedCellWidth(int)
public void setFixedCellWidth(int width)
width
が -1 の場合、各リスト要素の cellRenderer
コンポーネントに getPreferredSize
を適用することにより、セル幅が計算されます。
このプロパティのデフォルト値は -1 です。
これは JavaBeans バウンドプロパティです。
width
- ピクセル単位の、リスト内のすべてのセルの幅getPrototypeCellValue()
,
setFixedCellWidth(int)
,
JComponent.addPropertyChangeListener(java.beans.PropertyChangeListener)
public int getFixedCellHeight()
fixedCellHeight
プロパティで指定されている値です。
setFixedCellHeight(int)
public void setFixedCellHeight(int height)
height
が -1 の場合、各リスト要素の cellRenderer
コンポーネントに getPreferredSize
を適用することにより、セルの高さが計算されます。
このプロパティのデフォルト値は -1 です。
これは JavaBeans バウンドプロパティです。
height
- リスト内のすべてのセルの高さをピクセル数で指定する整数getPrototypeCellValue()
,
setFixedCellWidth(int)
,
JComponent.addPropertyChangeListener(java.beans.PropertyChangeListener)
public ListCellRenderer getCellRenderer()
ListCellRenderer
setCellRenderer(javax.swing.ListCellRenderer)
public void setCellRenderer(ListCellRenderer cellRenderer)
prototypeCellValue
が設定されていれば、fixedCellWidth
および fixedCellHeight
プロパティも設定されます。しかし、cellRenderer
プロパティに対しては PropertyChangeEvent
は 1 つだけ生成されます。
このプロパティのデフォルト値は ListUI 委譲 (Look & Feel の実装) によって提供されます。
セルレンダリングの設定例を参照するには、上記の クラスの説明を参照してください。
これは JavaBeans バウンドプロパティです。
cellRenderer
- リスト内のセルを描画する ListCellRenderer
getCellRenderer()
public Color getSelectionForeground()
Color
オブジェクトsetSelectionForeground(java.awt.Color)
,
setSelectionBackground(java.awt.Color)
public void setSelectionForeground(Color selectionForeground)
このプロパティのデフォルト値は、Look & Feel の実装によって定義されます。
これは JavaBeans バウンドプロパティです。
selectionForeground
- 選択されたリスト項目のフォアグラウンドで使う Color
getSelectionForeground()
,
setSelectionBackground(java.awt.Color)
,
JComponent.setForeground(java.awt.Color)
,
JComponent.setBackground(java.awt.Color)
,
JComponent.setFont(java.awt.Font)
public Color getSelectionBackground()
Color
setSelectionBackground(java.awt.Color)
,
setSelectionForeground(java.awt.Color)
public void setSelectionBackground(Color selectionBackground)
このプロパティのデフォルト値は、Look & Feel の実装によって定義されます。
これは JavaBeans バウンドプロパティです。
selectionBackground
- 選択されたセルのバックグラウンドで使う Color
getSelectionBackground()
,
setSelectionForeground(java.awt.Color)
,
JComponent.setForeground(java.awt.Color)
,
JComponent.setBackground(java.awt.Color)
,
JComponent.setFont(java.awt.Font)
public int getVisibleRowCount()
setVisibleRowCount(int)
public void setVisibleRowCount(int visibleRowCount)
JViewport
の上位オブジェクト (存在する場合のみ) によって決定されます。このプロパティ値は、JList
の preferredScrollableViewportSize
の値にのみ影響します。
このプロパティのデフォルト値は 8 です。
これは JavaBeans バウンドプロパティです。
visibleRowCount
- 可視行の適切な数を指定する整数getVisibleRowCount()
,
JComponent.getVisibleRect()
,
JViewport
public int getLayoutOrientation()
JList.VERTICAL
、コンテンツが垂直方向の次に水平方向の順に並ぶ「ニュースペーパースタイル」の場合は JList.VERTICAL_WRAP
、コンテンツが水平方向の次に垂直方向の順に並ぶ「ニュースペーパースタイル」の場合は JList.HORIZONTAL_WRAP
を返します。
setLayoutOrientation(int)
public void setLayoutOrientation(int layoutOrientation)
JList
の場合、次の方法のいずれかで配置することができます。
0 1 2 3
0 1 2 3
0 2 1 3
これらは次の値に対応します。
JList.VERTICAL
| セルは 1 つの列で垂直方向に配置される |
JList.HORIZONTAL_WRAP
| セルは水平方向に配置され、必要に応じて次の行へ折り返される。使用する行数は、0 より大きい場合 getVisibleRowCount で定義され、そうでない場合は JList の幅で指定される
|
JList.VERTICAL_WRAP
| セルは垂直方向に配置され、必要に応じて次の列へ折り返される。使用する行数は、0 より大きい場合 getVisibleRowCount で定義され、そうでない場合は JList の高さで指定される
|
JList.VERTICAL
です。
layoutOrientation
が JList.HORIZONTAL_WRAP
、JList.VERTICAL
、または JList.VERTICAL_WRAP
のどれでもない場合は、IllegalArgumentException
がスローされます。
layoutOrientation
- 新しい orientation。JList.HORIZONTAL_WRAP
、JList.VERTICAL
、または JList.VERTICAL_WRAP
のうちの 1 つgetLayoutOrientation()
,
setVisibleRowCount(int)
,
getScrollableTracksViewportHeight()
public int getFirstVisibleIndex()
componentOrientation
プロパティによります。方向が、左から右への水平方向である場合、最初の可視セルはリストの左上隅になり、右から左への水平方向の場合は右上隅になります。どのセルも可視ではない場合やリストが空である場合には -1 を返します。返されたセルは部分的に可視でもかまいません。
getLastVisibleIndex()
,
JComponent.getVisibleRect()
public int getLastVisibleIndex()
componentOrientation
プロパティによります。方向が、左から右への水平方向である場合、最後の可視セルは JList の右下隅になり、右から左への水平方向の場合は左下隅になります。どのセルも可視ではない場合やリストが空である場合には -1 を返します。返されたセルは部分的に可視でもかまいません。
getFirstVisibleIndex()
,
JComponent.getVisibleRect()
public void ensureIndexIsVisible(int index)
JViewport
内で JList
を表示する必要があります。
index
- 可視にするセルのインデックスJComponent.scrollRectToVisible(java.awt.Rectangle)
,
JComponent.getVisibleRect()
public void setDragEnabled(boolean b)
dragEnabled
プロパティを設定します。このコンポーネントの自動ドラッグ処理 (ドラッグ&ドロップの最初の部分) を使用可能にするには true
にする必要があります。ドラッグして何らかの操作を行うには transferHandler
プロパティは null
以外の値に設定します。dragEnabled
プロパティのデフォルト値は false
です。
自動ドラッグ処理が使用可能にされると、ほとんどの Look & Feel は、ユーザが選択範囲上でマウスボタンを押してからマウスを数ピクセル移動したときにドラッグ&ドロップ操作を開始します。したがって、このプロパティを true
に設定すると、選択範囲の動作にわずかに影響します。
自動ドラッグ処理をサポートしていない Look & Feel もあり、その場合このプロパティは無視されます。サポートしていない Look & Feel を回避するには、TransferHandler
の exportAsDrag
メソッドを直接呼び出してコンポーネントを変更します。
b
- dragEnabled
プロパティに設定する値
HeadlessException
- b
が true
かつ GraphicsEnvironment.isHeadless()
が true
を返す場合GraphicsEnvironment.isHeadless()
,
getDragEnabled()
,
JComponent.setTransferHandler(javax.swing.TransferHandler)
,
TransferHandler
public boolean getDragEnabled()
dragEnabled
プロパティを取得します。
dragEnabled
プロパティの値setDragEnabled(boolean)
public int getNextMatch(String prefix, int startIndex, Position.Bias bias)
prefix
- 一致をテストする文字列startIndex
- 検索を開始するインデックスbias
- 検索方向。Position.Bias.Forward、または Position.Bias.Backward
IllegalArgumentException
- 接頭辞が null または startIndex が範囲外にある場合public String getToolTipText(MouseEvent event)
JComponent
の getToolTipText
メソッドをオーバーライドして、レンダリングのヒント (テキストセットがある場合) を使用できるようにします。
JList
がレンダリングのツールヒントを適切に表示できるようにするには、JList
は ToolTipManager
に登録済みのコンポーネントでなければなりません。これはコンストラクタで自動的に行われますが、あとで JList
に setToolTipText(null)
を通知すると、リストコンポーネントを登録解除するので、レンダリングからのヒントはそれ以上表示されません。
JComponent
内の getToolTipText
JComponent.getToolTipText()
public int locationToIndex(Point location)
JList
の座標上の点をその位置にあるセルのインデックスに変換します。セルが実際にその位置を含むかどうかを判定するには、このメソッドと getCellBounds
を組み合わせて使用します。モデルが空の場合は、-1 を返します。
location
- JList
に関連したセルの座標
public Point indexToLocation(int index)
JList
座標における原点を返します。index
が無効な場合は、null
を返します。
index
- JList
セルのインデックス
public Rectangle getCellBounds(int index0, int index1)
JList
座標で指定された項目範囲の境界を返します。インデックスが無効な場合は null
を返します。
index0
- 範囲内の最初の JList
セルのインデックスindex1
- 範囲内の最後の JList
セルのインデックス
public ListModel getModel()
JList
コンポーネントによって表示される項目のリストを保持するデータモデルを返します。
ListModel
setModel(javax.swing.ListModel)
public void setModel(ListModel model)
PropertyChangeListener
への通知後にリストの選択物をクリアします。
これは JavaBeans バウンドプロパティです。
model
- 表示される項目のリストを提供する ListModel
IllegalArgumentException
- model
が null
の場合getModel()
public void setListData(Object[] listData)
ListModel
を構築し、setModel
を適用します。
listData
- リストに表示する項目を保持する Object の配列setModel(javax.swing.ListModel)
public void setListData(Vector listData)
Vector
から ListModel
を構築し、setModel
を適用します。
listData
- リストに表示する項目を保持する Vector
setModel(javax.swing.ListModel)
protected ListSelectionModel createSelectionModel()
DefaultListSelectionModel
のインスタンスを返します。このメソッドは、コンストラクタが selectionModel
プロパティを初期化するのに使用します。
JList
が使用する ListSelectionModel
setSelectionModel(javax.swing.ListSelectionModel)
,
DefaultListSelectionModel
public ListSelectionModel getSelectionModel()
ListSelectionModel
setSelectionModel(javax.swing.ListSelectionModel)
,
ListSelectionModel
protected void fireSelectionValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)
JList
の ListSelectionListener
に通知します。このメソッドは、ListSelectionEvent
を selectionModel
から、直接 JList
に追加された ListSelectionListener
に転送するために使用されます。
firstIndex
- 選択されている最初のインデックスlastIndex
- 選択されている最後のインデックスisAdjusting
- 複数の変更が行われた場合は trueaddListSelectionListener(javax.swing.event.ListSelectionListener)
,
removeListSelectionListener(javax.swing.event.ListSelectionListener)
,
EventListenerList
public void addListSelectionListener(ListSelectionListener listener)
JList
に直接追加されるリスナーは、(ListSelectionModel
の代わりに) ListSelectionEvent.getSource()
(この JList) を持ちます。
listener
- 追加する ListSelectionListener
getSelectionModel()
public void removeListSelectionListener(ListSelectionListener listener)
listener
- 削除する ListSelectionListener
addListSelectionListener(javax.swing.event.ListSelectionListener)
,
getSelectionModel()
public ListSelectionListener[] getListSelectionListeners()
ListSelectionListener
の配列を返します。
ListSelectionListener
。追加されたリスナーがない場合は空の配列public void setSelectionModel(ListSelectionModel selectionModel)
selectionModel
を null
ではない ListSelectionModel
実装に設定します。選択モデルは、単一選択、隣接した範囲の選択、および非隣接選択を作成するタスクを処理します。
これは JavaBeans バウンドプロパティです。
selectionModel
- 選択を実装する ListSelectionModel
IllegalArgumentException
- selectionModel
が null
の場合getSelectionModel()
public void setSelectionMode(int selectionMode)
selectionMode
値を指定できます。
ListSelectionModel.SINGLE_SELECTION
- 1 回に 1 つのリストインデックスのみが選択できます。このモードでは、setSelectionInterval
および addSelectionInterval
メソッドは同等となり、2 番目のインデックス引数のみが使用されます。
ListSelectionModel.SINGLE_INTERVAL_SELECTION
- 連続するインデックス区間を 1 回に 1 つ選択できます。このモードでは、setSelectionInterval
メソッドと addSelectionInterval
メソッドは同等です。
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION
- このモードでは、選択対象に制限はありません。これがデフォルトです。
selectionMode
- 可能な選択タイプを指定する整数getSelectionMode()
public int getSelectionMode()
selectionMode
プロパティの値setSelectionMode(int)
public int getAnchorSelectionIndex()
addSelectionModel
または setSelectionInterval
呼び出しにおける最初のインデックス引数を返します。selectionModel
に委譲する簡易メソッドです。
ListSelectionModel.getAnchorSelectionIndex()
,
addSelectionInterval(int, int)
,
setSelectionInterval(int, int)
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public int getLeadSelectionIndex()
addSelectionInterval
または setSelectionInterval
呼び出しにおける 2 番目のインデックス引数を返します。selectionModel
に委譲する簡易メソッドです。
ListSelectionModel.getLeadSelectionIndex()
,
addSelectionInterval(int, int)
,
setSelectionInterval(int, int)
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public int getMinSelectionIndex()
selectionModel
に委譲する簡易メソッドです。
ListSelectionModel.getMinSelectionIndex()
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public int getMaxSelectionIndex()
selectionModel
に委譲する簡易メソッドです。
ListSelectionModel.getMaxSelectionIndex()
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public boolean isSelectedIndex(int index)
selectionModel
に委譲する簡易メソッドです。
index
- 選択状態が照会されるインデックス
ListSelectionModel.isSelectedIndex(int)
,
setSelectedIndex(int)
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public boolean isSelectionEmpty()
selectionModel
に委譲する簡易メソッドです。
ListSelectionModel.isSelectionEmpty()
,
clearSelection()
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public void clearSelection()
isSelectionEmpty
は true を返します。selectionModel
に委譲する簡易メソッドです。
ListSelectionModel.clearSelection()
,
isSelectionEmpty()
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public void setSelectionInterval(int anchor, int lead)
anchor
および lead
インデックスが含まれます。anchor
が lead
より小さくなくてもかまいません。selectionModel
に委譲する簡易メソッドです。anchor
または lead
が -1 の場合、DefaultListSelectionModel
実装は何も行いません。anchor
または lead
が -1 未満の場合、IndexOutOfBoundsException
がスローされます。
anchor
- 選択する最初のインデックスlead
- 選択する最後のインデックス
IndexOutOfBoundsException
- anchor
または lead
が -1 未満の場合ListSelectionModel.setSelectionInterval(int, int)
,
addSelectionInterval(int, int)
,
removeSelectionInterval(int, int)
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public void addSelectionInterval(int anchor, int lead)
selectionModel
に委譲する簡易メソッドです。anchor
または lead
が -1 の場合、DefaultListSelectionModel
実装は何も行いません。anchor
または lead
が -1 未満の場合、IndexOutOfBoundsException
がスローされます。
anchor
- 選択に追加する最初のインデックスlead
- 選択に追加する最後のインデックス
IndexOutOfBoundsException
- anchor
または lead
が -1 未満の場合ListSelectionModel.addSelectionInterval(int, int)
,
setSelectionInterval(int, int)
,
removeSelectionInterval(int, int)
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public void removeSelectionInterval(int index0, int index1)
index0
および index1 インデックスが削除されます。index0
が index1
より小さくなくてもかまいません。selectionModel
に委譲する簡易メソッドです。index0
または index1
が -1 の場合、DefaultListSelectionModel
実装は何も行いません。index0
または index1
が -1 未満の場合、IndexOutOfBoundsException
がスローされます。
index0
- 選択から削除する最初のインデックスindex1
- 選択から削除する最後のインデックス
IndexOutOfBoundsException
- index0
または index1
が -1 未満の場合ListSelectionModel.removeSelectionInterval(int, int)
,
setSelectionInterval(int, int)
,
addSelectionInterval(int, int)
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public void setValueIsAdjusting(boolean b)
isAdjusting
プロパティを true に設定し、すべての選択イベント (選択モードでリスト項目上をマウスでドラッグしている場合など) が完了した時点で単一イベントが生成されるようにします。
b
- プロパティ値の boolean 値ListSelectionModel.setValueIsAdjusting(boolean)
public boolean getValueIsAdjusting()
isAdjusting
プロパティの値を返します。複数の変更が行われている場合には true を返します。
ListSelectionModel.getValueIsAdjusting()
public int[] getSelectedIndices()
removeSelectionInterval(int, int)
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public void setSelectedIndex(int index)
index
- 選択する単一セルのインデックスListSelectionModel.setSelectionInterval(int, int)
,
isSelectedIndex(int)
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public void setSelectedIndices(int[] indices)
indices
- 選択するセルのインデックスの配列ListSelectionModel.addSelectionInterval(int, int)
,
isSelectedIndex(int)
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public Object[] getSelectedValues()
isSelectedIndex(int)
,
getModel()
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public int getSelectedIndex()
getMinSelectionIndex
の値getMinSelectionIndex()
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public Object getSelectedValue()
null
を返します。
getMinSelectionIndex()
,
getModel()
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public void setSelectedValue(Object anObject, boolean shouldScroll)
anObject
- 選択するオブジェクトshouldScroll
- オブジェクトが存在し、リストをスクロールして選択したオブジェクトを表示する場合は true。そうでない場合は falsepublic Dimension getPreferredScrollableViewportSize()
visibleRowCount
の行を表示するために必要なビューポートのサイズを計算します。fixedCellWidth
および fixedCellHeight
プロパティが指定されている場合には、このサイズは明らかです。これらのプロパティ値は、prototypeCellValue
プロパティによって暗黙に指定されることもあります。fixedCellWidth
が指定されていない場合には、このサイズはもっとも幅の広いリスト要素を見つけることによって計算されます。fixedCellHeight
が指定されていない場合には、次のような経験則に頼ります。
visibleRowCount
によって乗算します。
JList.getModel().getSize() == 0
であれば)、可視行あたり 16 ピクセルを割り当て、幅に (fixedCellWidth
が設定されていなければ) 256 ピクセルを割り当て、最善の結果を期待します。
VERTICAL
でない場合、getPreferredSize
からの値を返します。現在の ListUI
により、適切な値を返すよう getPreferredSize
がオーバーライドされることが予想されます。
Scrollable
内の getPreferredScrollableViewportSize
visibleRowCount
行の表示に必要なビューポートのサイズを含む寸法getPreferredScrollableViewportSize()
,
setPrototypeCellValue(java.lang.Object)
public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
null
であれば、1 を返します。標準的な文字列 ("m" など) の幅ではなく、計算が容易なフォントサイズを使用しています。
垂直スクロールの場合は、下方向にスクロールする場合に (direction
が 0 より大きい)、先頭行が visibleRect
に対して完全に可視であれば、先頭行の高さを返します。下方向にスクロールする場合に、先頭行が部分的にのみ可視であれば、先頭行の可視分の高さを返します。同じように、上方向にスクロールする場合に、先頭行が完全に可視であれば、先頭行の上の行の高さを返します。
visibleRect
の値は、this.getVisibleRect()
と同じでなければなりません。
Scrollable
内の getScrollableUnitIncrement
visibleRect
- 可視矩形orientation
- HORIZONTAL または VERTICALdirection
- <= 0 の場合はスクロールアップ、> 0 の場合はスクロールダウン
IllegalArgumentException
- visibleRect が null の場合、あるいは orientation が SwingConstants.VERTICAL または SwingConstants.HORIZONTAL のどちらかでない場合- 関連項目:
Scrollable.getScrollableUnitIncrement(java.awt.Rectangle, int, int)
public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
direction
が 0 より大きい) 場合は、最後の可視要素が最初の完全な可視要素になる
水平方向のスクロールには、リストが水平方向に配置されている場合 (orientation が VERTICAL_WRAP
または HORIZONTAL_WRAP
)、次のルールを使用します。
direction
が 0 より大きい) 場合は、次の列が最初の可視列になる
visibleRect
の値は、this.getVisibleRect()
と同じでなければなりません。
Scrollable
内の getScrollableBlockIncrement
visibleRect
- 可視矩形orientation
- HORIZONTAL または VERTICALdirection
- <= 0 の場合はスクロールアップ、> 0 の場合はスクロールダウン
IllegalArgumentException
- visibleRect が null の場合、あるいは orientation が SwingConstants.VERTICAL または SwingConstants.HORIZONTAL のどちらかでない場合- 関連項目:
Scrollable.getScrollableUnitIncrement(java.awt.Rectangle, int, int)
public boolean getScrollableTracksViewportWidth()
JList
が JViewport
に表示され、ビューポートが JList
の適切な幅よりも広い場合、またはレイアウト方向が HORIZONTAL_WRAP
であり、可視行カウントが <= 0 の場合は true を返します。そうでない場合は false を返します。false の場合、ビューポートの幅を追跡しません。これにより、JViewport
自体が JScrollPane
に組み込まれている場合、水平スクロールができるようになります。
Scrollable
内の getScrollableTracksViewportWidth
JList
の適切な幅よりも広い場合は true、そうでない場合は falseScrollable.getScrollableTracksViewportWidth()
public boolean getScrollableTracksViewportHeight()
JList
が JViewport
に表示され、ビューポートが JList
の適切な高さよりも高い場合、またはレイアウト方向が VERTICAL_WRAP
であり、可視行カウントが <= 0 の場合は true を返します。そうでない場合は false を返します。false の場合、ビューポートの高さを追跡しません。これにより、JViewport
自体が JScrollPane
に組み込まれている場合、垂直スクロールができるようになります。
Scrollable
内の getScrollableTracksViewportHeight
Jlist
の適切な高さよりも高い場合は true、そうでない場合は falseScrollable.getScrollableTracksViewportHeight()
protected String paramString()
JList
の文字列表現を返します。このメソッドはデバッグ専用であり、返される文字列の内容および形式は実装によって異なります。返される文字列は空の場合がありますが、null
にはなりません。
JComponent
内の paramString
JList
の文字列表現public AccessibleContext getAccessibleContext()
Accessible
内の getAccessibleContext
JComponent
内の getAccessibleContext
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.