com.nttdocomo.ui
クラス ListBox

java.lang.Object
  |
  +--com.nttdocomo.ui.Component
        |
        +--com.nttdocomo.ui.ListBox
すべての実装インタフェース:
Interactable

public final class ListBox
extends Component
implements Interactable

リストボックスコンポーネント クラスです。 高レベル API で使用するUI部品の一つで、選択リスト、チェックボックス、ラジオボタンを 表すコンポーネントです。

コンストラクタの引数でリストのタイプを指定することにより、以下のリストが作成できます。

形状と選択の種類の観点からまとめると以下のようになります。

形状選択
単一選択複数選択
ポップアップ形式オプションメニュー
(CHOICE)
なし
フィールド形式リストシングル選択リスト
(SINGLE_SELECT)
複数選択リスト
(MULTIPLE_SELECT)
番号つきリスト番号つきリスト
(NUMBERED_LIST)
なし
チェックボックスなしチェックボックスリスト
(CHECK_BOX)
ラジオボタンラジオボタンリスト
(RADIO_BUTTON)
なし

オプションメニューは、CHTMLのSELECTタグでサイズ指定をしない場合のメニューに相当します。 通常は、選択されている項目が表示されており、そのリストコンポーネントが選択されると、 リスト中の項目が展開されて表示されます。

  +-----------+          +-----------+
  | item1     |  ---->   |item1      |
  +-----------+  <----   |item2      |
                         |item3      |
                         +-----------+
 
展開されたときのメニューの高さは格納されている項目が表示できる高さとスクリーンの高さのうちの 小さい方のサイズになります。したがって、項目が多い場合、展開表示されて1度に表示する項目の数は 制限されますが、この表示中でスクロールすることにより隠れていた項目を表示することができます。 また、展開されたときのメニューの幅は機種依存です。

フィールド形式のリストは、ボックス型のスクロールドリストです。サイズ指定がない場合、 この形式のリストは、リストの幅がパネルの幅と等しくなり、高さは、登録されている項目数が表示できる高さと スクリーンの高さのうちの小さい方になります。なお、行数が指定されている場合は、高さは、その行数を表示できる高さと スクリーンの高さのうちの小さい方になります。行数に0が指定されている場合は、1が指定されていると見なします。 項目数が多く、すべてを表示できない場合は、スクロールすることにより、隠れていた項目を表示することができます。 表示例を以下に示します。

  +------------+    +------------+    +------------+     +------------+    
  |item1       |    |1. item1    |    |○ item1    |     |□ item1    |
  |item2       |    |2. item2    |    |○ item2    |     |■ item2    |
  |item3       |    |3. item3    |    |◎ item3    |     |□ item3    |
  |item4       |    |4. item4    |    |○ item4    |     |□ item4    |
  |item5       |    |5. item5    |    |○ item5    |     |■ item5    |
  +------------+    +------------+    +------------+     +------------+
 

番号つきリストは、シングル選択リストの特殊なもので、先頭から9個が数字キーで選択できます。 先頭が、1キー、2番目が、2キーと順に対応づけられ、9番目が9キーに対応します。10番目以降の 項目にはキーが対応づけられません。10番目以降は、シングル選択リストと同じ操作で選択します。
[DoJa-1.0]
設定する項目の文字列がコンポーネントの幅より長い場合の振舞(切り縮めるか折り返すかなど)は、 機種依存です。
[DoJa-2.0]
設定する項目の文字列は1行です。 設定する項目の文字列がコンポーネントの幅より長い場合は表示できない部分を切り捨てて表示します。

項目数が多く、指定されたサイズですべての項目が表示できない場合は、項目をスクロールして表示します。

リストのインデックスは、先頭の項目を指定する場合に0を、二番目の項目を指定する場合に1を、 というように指定します。


フィールドの概要
static int CHECK_BOX
          項目のそれぞれについて選択/非選択を指定できるチェックボックスです (=2)。
static int CHOICE
          オプションメニューです (=5)。
static int MULTIPLE_SELECT
          項目を複数選択できるリスト(複数選択リスト)です (=4)。
static int NUMBERED_LIST
          項目に番号が割り当てられていて、番号に対応するキーを押すことで直接その項目を選択できる番号付きリストです (=3)。
static int RADIO_BUTTON
          複数の項目から一つだけを排他的に選択できるラジオボタンです (=1)。
static int SINGLE_SELECT
          項目を一つだけ選択できるリスト(シングル選択リスト)です (=0)。
 
コンストラクタの概要
ListBox(int type)
          項目を持たない空のリストボックスを生成します。
ListBox(int type, int rows)
          項目を持たない空のリストボックスを生成します。
 
メソッドの概要
 void append(java.lang.String item)
          リストの末尾に項目を追加します。
 void deselect(int index)
          リストの特定の位置の項目を選択解除します。
 java.lang.String getItem(int index)
          リストの特定の位置の項目を取得します。
 int getItemCount()
          リストの項目の数を取得します。
 int getSelectedIndex()
          選択されている項目の位置を返します。
 boolean isIndexSelected(int index)
          リストの特定の位置の項目が選択されているかどうか調べます。
 void removeAll()
          リストの全ての項目を削除します。
 void requestFocus()
          リストボックスにフォーカスをセットするよう要求します。
 void select(int index)
          リストの特定の位置の項目を選択します。
 void setEnabled(boolean b)
          リストボックスをユーザ操作可能にしたりユーザ操作不能にしたりします。
 void setItems(java.lang.String[] items)
          リストの項目をまとめて配列で設定します。
 
クラス com.nttdocomo.ui.Component から継承したメソッド
getHeight, getWidth, getX, getY, setBackground, setForeground, setLocation, setSize, setVisible
 
クラス java.lang.Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

SINGLE_SELECT

public static final int SINGLE_SELECT
項目を一つだけ選択できるリスト(シングル選択リスト)です (=0)。

RADIO_BUTTON

public static final int RADIO_BUTTON
複数の項目から一つだけを排他的に選択できるラジオボタンです (=1)。

CHECK_BOX

public static final int CHECK_BOX
項目のそれぞれについて選択/非選択を指定できるチェックボックスです (=2)。

NUMBERED_LIST

public static final int NUMBERED_LIST
項目に番号が割り当てられていて、番号に対応するキーを押すことで直接その項目を選択できる番号付きリストです (=3)。

MULTIPLE_SELECT

public static final int MULTIPLE_SELECT
項目を複数選択できるリスト(複数選択リスト)です (=4)。

CHOICE

public static final int CHOICE
オプションメニューです (=5)。
コンストラクタの詳細

ListBox

public ListBox(int type)
項目を持たない空のリストボックスを生成します。 生成時は、表示可能で、ユーザ操作可能になっています。 表示可能、表示不能を設定するには、setVisibleメソッドを使用します。 ユーザ操作可能、ユーザ操作不能を設定するには、setEnabledメソッドを使用します。
パラメータ:
type - リストボックスのタイプを指定します。type には、 SINGLE_SELECT、RADIO_BUTTON、CHECK_BOX、NUMBERED_LIST、MULTIPLE_SELECT、CHOICE のいずれかが指定できます。それ以外の値を指定した場合は、例外が発生します。
例外:
IllealArgumentException - 引数 type に不正な値が指定された場合に発生します。

ListBox

public ListBox(int type,
               int rows)
項目を持たない空のリストボックスを生成します。 生成時は、表示可能で、ユーザ操作可能になっています。 表示可能、表示不能を設定するには、setVisibleメソッドを使用します。 ユーザ操作可能、ユーザ操作不能を設定するには、setEnabledメソッドを使用します。
パラメータ:
type - リストボックスのタイプを指定します。type には、 SINGLE_SELECT、RADIO_BUTTON、CHECK_BOX、NUMBERED_LIST、MULTIPLE_SELECT、CHOICE のいずれかが指定できます。それ以外の値を指定した場合は、例外が発生します。
rows - 表示する行数を指定します。このパラメータは、タイプが CHOICE以外の場合に有効です。 0が指定された場合は、1が指定されたものとして振舞います。
例外:
IllealArgumentException - 引数 type に不正な値が指定された場合、 引数 rows に 0 未満の値が指定された場合に発生します。
メソッドの詳細

setEnabled

public void setEnabled(boolean b)
リストボックスをユーザ操作可能にしたりユーザ操作不能にしたりします。 デフォルトではユーザ操作可能です。
定義:
インタフェース Interactable 内の setEnabled
パラメータ:
b - ユーザ操作可能にする場合は true を、ユーザ操作不能にする場合は false を指定します。

requestFocus

public void requestFocus()
リストボックスにフォーカスをセットするよう要求します。 リストボックスをaddメソッドでパネルに追加される以前に発行された 要求は無視されます。 ユーザ操作不能になっている場合、requestFocus()によるフォーカスリクエストは 受け付けられません。
定義:
インタフェース Interactable 内の requestFocus

setItems

public void setItems(java.lang.String[] items)
リストの項目をまとめて配列で設定します。 それまでの項目は全て削除され、指定された配列の項目が全て設定されます。

ユーザ操作可能/不能に関わらず、このメソッドは機能します。

パラメータ:
items - 追加する項目を指定します。 null が指定された場合は NullPointerException が発生します。
例外:
NullPointerException - 引数の items に nullが指定された場合、 引数 items の要素に null が指定された場合に発生します。

append

public void append(java.lang.String item)
リストの末尾に項目を追加します。 ユーザ操作可能/不能に関わらず、このメソッドは機能します。
パラメータ:
item - 追加する項目を指定します。
例外:
NullPointerException - 引数 item に null が指定された場合に発生します。

removeAll

public void removeAll()
リストの全ての項目を削除します。 ユーザ操作可能/不能に関わらず、このメソッドは機能します。

getItemCount

public int getItemCount()
リストの項目の数を取得します。
戻り値:
リストの項目の数を返します。

getItem

public java.lang.String getItem(int index)
リストの特定の位置の項目を取得します。
パラメータ:
index - 取得する項目の位置を指定します。
戻り値:
指定された位置の項目を返します。
例外:
ArrayIndexOutOfBoundsException - 引数 index に負の値または項目数以上の値が指定された場合に発生します。

select

public void select(int index)
リストの特定の位置の項目を選択します。その項目が表示されていない位置にある場合は、その項目 が表示される位置までスクロールします。 項目を選択すると、リストボックスのタイプに応じてコンポーネントイベント(SELECTION_CHANGED)が発生します。

不可視、可視に関わらず、このメソッドの呼び出しにより、選択状態は変更されます。ただし、イベントは、 可視の場合だけ発生します。

ユーザ操作可能/不能に関わらず、このメソッドは機能します。

パラメータ:
index - 選択する項目の位置を指定します。
例外:
ArrayIndexOutOfBoundsException - 引数 index に負の値または項目数以上の値が指定された場合に発生します。

deselect

public void deselect(int index)
リストの特定の位置の項目を選択解除します。 項目を選択解除すると、リストボックスのタイプに応じてコンポーネントイベント(SELECTION_CHANGED)が発生します。

不可視、可視に関わらず、このメソッドの呼び出しにより、選択状態は変更されます。ただし、イベントは、 可視の場合だけ発生します。

ユーザ操作可能/不能に関わらず、このメソッドは機能します。

パラメータ:
index - 選択解除する項目の位置を指定します。
例外:
UIException - [DoJa-2.0] CHOICE タイプのリストボックスに対して呼び出された場合に発生します(ILLEGAL_STATE)。
ArrayIndexOutOfBoundsException - 引数 index に負の値または項目数以上の値が指定された場合に発生します。

isIndexSelected

public boolean isIndexSelected(int index)
リストの特定の位置の項目が選択されているかどうか調べます。
パラメータ:
index - 選択されているかどうか調べる項目の位置を指定します。
戻り値:
項目が選択されている場合は true を、そうでない場合は false を返します。
例外:
ArrayIndexOutOfBoundsException - 引数 index に負の値または項目数以上の値が指定された場合に発生します。

getSelectedIndex

public int getSelectedIndex()
選択されている項目の位置を返します。 複数選択されている場合は、位置の値が最も小さい項目の位置を返します。
戻り値:
選択されている項目の位置を返します。 選択されていない場合は、-1 を返します。