|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JList
public class 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 となっています。
警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。JDK バージョン 1.4 以降、すべての JavaBeans™ の長期間の運用サポートは、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 から継承された入れ子のクラス/インタフェース |
|---|
JComponent.AccessibleJComponent |
| クラス java.awt.Container から継承された入れ子のクラス/インタフェース |
|---|
Container.AccessibleAWTContainer |
| クラス java.awt.Component から継承された入れ子のクラス/インタフェース |
|---|
Component.AccessibleAWTComponent, 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 - データモデルにロードされる Vectorpublic JList()
JList を構築します。
| メソッドの詳細 |
|---|
public ListUI getUI()
ListUI オブジェクトpublic void setUI(ListUI ui)
ui - ListUI L&F オブジェクトUIDefaults.getUI(javax.swing.JComponent)public void updateUI()
JComponent 内の updateUIUIManager.getUI(javax.swing.JComponent)public String getUIClassID()
JComponent 内の getUIClassIDJComponent.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),
Container.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),
Container.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),
Container.addPropertyChangeListener(java.beans.PropertyChangeListener)public ListCellRenderer getCellRenderer()
ListCellRenderersetCellRenderer(javax.swing.ListCellRenderer)public void setCellRenderer(ListCellRenderer cellRenderer)
prototypeCellValue が設定されていれば、fixedCellWidth および fixedCellHeight プロパティも設定されます。しかし、cellRenderer プロパティに対しては PropertyChangeEvent は 1 つだけ生成されます。
このプロパティのデフォルト値は ListUI 委譲 (Look & Feel の実装) によって提供されます。
セルレンダリングの設定例を参照するには、上記のクラスの説明を参照してください。
これは JavaBeans バウンドプロパティです。
cellRenderer - リスト内のセルを描画する ListCellRenderergetCellRenderer()public Color getSelectionForeground()
Color オブジェクトsetSelectionForeground(java.awt.Color),
setSelectionBackground(java.awt.Color)public void setSelectionForeground(Color selectionForeground)
このプロパティのデフォルト値は、Look & Feel の実装によって定義されます。
これは JavaBeans バウンドプロパティです。
selectionForeground - 選択されたリスト項目のフォアグラウンドで使用する ColorgetSelectionForeground(),
setSelectionBackground(java.awt.Color),
JComponent.setForeground(java.awt.Color),
JComponent.setBackground(java.awt.Color),
JComponent.setFont(java.awt.Font)public Color getSelectionBackground()
ColorsetSelectionBackground(java.awt.Color),
setSelectionForeground(java.awt.Color)public void setSelectionBackground(Color selectionBackground)
このプロパティのデフォルト値は、Look & Feel の実装によって定義されます。
これは JavaBeans バウンドプロパティです。
selectionBackground - 選択されたセルのバックグラウンドで使用する ColorgetSelectionBackground(),
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(),
JViewportpublic 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 は自動ドラッグ&ドロップ操作をサポートしない場合があります。これらはこのプロパティを無視します。直接 TransferHandler の exportAsDrag メソッドを呼び出してコンポーネントを変更することにより、このような Look & Feel を操作することができます。
b - dragEnabled プロパティに設定される値
HeadlessException - b が true の場合で GraphicsEnvironment.isHeadless() が true を返す場合GraphicsEnvironment.isHeadless(),
getDragEnabled(),
JComponent.setTransferHandler(javax.swing.TransferHandler),
TransferHandlerpublic 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 内の getToolTipTextJComponent.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 コンポーネントによって表示される項目のリストを保持するデータモデルを返します。
ListModelsetModel(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 - リストに表示する項目を保持する VectorsetModel(javax.swing.ListModel)protected ListSelectionModel createSelectionModel()
DefaultListSelectionModel のインスタンスを返します。このメソッドは、コンストラクタが selectionModel プロパティを初期化するのに使用します。
JList が使用する ListSelectionModelsetSelectionModel(javax.swing.ListSelectionModel),
DefaultListSelectionModelpublic ListSelectionModel getSelectionModel()
ListSelectionModelsetSelectionModel(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),
EventListenerListpublic void addListSelectionListener(ListSelectionListener listener)
JList に直接追加されるリスナーは、(ListSelectionModel の代わりに) ListSelectionEvent.getSource() (この JList) を持ちます。
listener - 追加する ListSelectionListenergetSelectionModel(),
getListSelectionListeners()public void removeListSelectionListener(ListSelectionListener listener)
listener - 削除する ListSelectionListeneraddListSelectionListener(javax.swing.event.ListSelectionListener),
getSelectionModel()public ListSelectionListener[] getListSelectionListeners()
ListSelectionListener の配列を返します。
ListSelectionListener。追加されたリスナーがない場合は空の配列addListSelectionListener(javax.swing.event.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 内の getPreferredScrollableViewportSizevisibleRowCount 行の表示に必要なビューポートのサイズを含む寸法getPreferredScrollableViewportSize(),
setPrototypeCellValue(java.lang.Object)
public int getScrollableUnitIncrement(Rectangle visibleRect,
int orientation,
int direction)
水平方向のスクロールでは、リストが垂直方向に配置されている (orientation が VERTICAL) 場合、リストのフォントサイズが返されます。フォントが null の場合は 1 が返されます。
visibleRect の値は、this.getVisibleRect() と同じでなければいけません。
Scrollable 内の getScrollableUnitIncrementvisibleRect - 可視矩形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.width を返します。
visibleRect の値は、this.getVisibleRect() と同じでなければいけません。
Scrollable 内の getScrollableBlockIncrementvisibleRect - 可視矩形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 内の getScrollableTracksViewportWidthJList の適切な幅よりも広い場合は true、そうでない場合は falseScrollable.getScrollableTracksViewportWidth()public boolean getScrollableTracksViewportHeight()
JList が JViewport に表示され、ビューポートが JList の適切な高さよりも高い場合、またはレイアウト方向が VERTICAL_WRAP であり、可視行カウントが 0 以下の場合は true を返します。そうでない場合は false を返します。false の場合、ビューポートの高さを追跡しません。これにより、JViewport 自体が JScrollPane に組み込まれている場合、垂直スクロールができるようになります。
Scrollable 内の getScrollableTracksViewportHeightJlist の適切な高さよりも高い場合は true、そうでない場合は falseScrollable.getScrollableTracksViewportHeight()protected String paramString()
JList の文字列表現を返します。このメソッドはデバッグ専用であり、返される文字列の内容および形式は実装によって異なります。返される文字列は空の場合がありますが、null にはなりません。
JComponent 内の paramStringJList の文字列表現public AccessibleContext getAccessibleContext()
Accessible 内の getAccessibleContextJComponent 内の getAccessibleContext
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。