|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.microedition.lcdui.Displayable javax.microedition.lcdui.Screen javax.microedition.lcdui.List
public class List
選択リストを提供する Screen
です。
振る舞いの大部分および API は ChoiceGroup
クラスと共通です。
特に、異なる各 List
タイプは Choice
インタフェースにて定義されています。
List
がディスプレイに表示されている場合、ユーザーは無制限(例えば要素が多数ある場合はスクロールして)に対話することができます。
スクロールを伴う操作はアプリケーションから見えるイベントを発生させません。
Command
を CommandListener
に通知するために呼び出す場合に限り、システムはアプリケーションへ通知を行います。
また、List
クラスは、デバイスが持つ能力によって呼び出されることがある選択コマンドをサポートします。
List
における、List
要素の選択操作はユーザー操作が中心であるという概念を持ちます。
専用のハードウェアで「選択」または「実行」キーを用意しているデバイスでは、選択操作はそのキーによって実装されます。
専用キーを用意していないデバイスは、例えばソフトキーなどを用いることで選択操作をするための代替手段を提供しなければなりません。
異なるタイプのリストの中の選択操作の振る舞いは以下のセクションで解説します。
List
オブジェクトは Choice.EXCLUSIVE
、Choice.MULTIPLE
、および Choice.IMPLICIT
のいずれかの Choice
タイプで作成します。
List
オブジェクトにおいては Choice
タイプの Choice.POPUP
を許容しません。
EXCLUSIVE
および MULTIPLE
選択 List
選択操作が Command
オブジェクトに関連付けられていないので、アプリケーションには操作が実行されるとき、それを通知される手段がないため、それにラベルを設定するなどを行うことができません。
EXCLUSIVE
タイプの List
では、選択操作はターゲット要素の選択と以前に選択していた要素の選択解除を行います。
MULTIPLE
タイプの List
では、選択操作はターゲット要素の選択状態を反転します。他の要素の選択状態は変更しません。
ソフトキーを使用することで選択操作を実装するデバイスは、ラベルをソフトキーに提供する必要があるでしょう。
ラベルは EXCLUSIVE
タイプの List
のために「選択」あるいはそれに類する文言であるべきです。そして、それは MULTIPLE
の List
では「選択」か「解除」あるいはそれに類する文言であるべきです。
IMPLICIT
選択 List
選択操作は選択コマンドと呼ぶ Command
オブジェクトに関連しています。
ユーザーが選択操作を実行すると、システムは選択コマンドを通知するために List
の CommandListener
を呼び出します。
デフォルトの選択コマンドはシステムによって提供されるコマンドの SELECT_COMMAND
です。
選択コマンドは、setSelectCommand
メソッドを使用することによってアプリケーションが変更することができます。
ソフトキーを使用することで選択操作を実装するデバイスは、選択コマンドからのラベルを使用するでしょう。
選択コマンドが SELECT_COMMAND
であるなら、デバイスは SELECT_COMMAND
のラベル属性を用いる代わりに、デバイス自身がラベルを提供することがあります。
一般に、アプリケーションは SELECT_COMMAND
を置き換える際には、アプリケーション自身の選択コマンドを提供すべきです。
これにより、システムによって提供される SELECT_COMMAND
をあてにすることなく、アプリケーションは重要なラベルを提供することができます。
要素が List
にまったく存在しなければ、実装は選択コマンドを発動させてはいけません。List
が空の場合には選択対象が存在しないからです。
このような場合、選択コマンドがソフト・ボタンとして、あるいはメニューに存在するなら、取り除くかまたは無効にすべきです。
List
が空であるときに、通常は他のコマンドを発動させることができます。
IMPLICIT
List
の使用List
要素として操作を提供することで、メニューを構成するために IMPLICIT
List
を使用することができます。
アプリケーションは List
要素で選択するための Command
と、選択コマンドとして使用するための Command
を定義して提供します。
また、アプリケーションはユーザーが Command
を選択するか、有効にする際に呼ばれる CommandListener
を登録しなければなりません:
String[] elements = { ... }; // List 要素用のメニューアイテム List menuList = new List("メニュー", List.IMPLICIT, elements, null); Command selectCommand = new Command("開く", Command.ITEM, 1); menuList.setSelectCommand(selectCommand); menuList.setCommandListener(...);
リスナーはどの要素が選択されているかを決定し、次に対応する動作を実行するために List
に対して問い合わせをすることができます。
選択コマンドとして Command
を List
に設定するとそれが副作用をもたらすので注意が必要です。
選択コマンドは、選択キーが押されたときに行われるデフォルト操作であるとみなすべきです。
例えば、メール・ヘッダを表示する List
が3つの操作を持っているとします:読む、返信、そして削除。
読む、はデフォルト操作であると考えることができます。
List list = new List(" 電子メール ", List.IMPLICIT, headers); readCommand = new Command(" 読む ", Command.ITEM, 1); replyCommand = new Command(" 返信 ", Command.ITEM, 2); deleteCommand = new Command(" 削除 ", Command.ITEM, 3); list.setSelectCommand(readCommand); list.addCommand(replyCommand); list.addCommand(deleteCommand); list.setCommandListener(...);
専用の選択キーのあるデバイスでは、このキーを押すと readCommand
が発動されます。
選択キーのないデバイスにおいても、普通の Command
としてそれが提供されるので、ユーザーは readCommand
を発動することができます。
この種類のデフォルト操作は、ユーザーインタフェースは常にユーザービリティを得られることを念頭に置いて、慎重に使用しなければならないことに注意すべきです。
常にデフォルト操作はその List
において直感的な操作であるべきです。
フィールドの概要 | |
---|---|
static Command |
SELECT_COMMAND
IMPLICIT List のためのデフォルト選択コマンドです。 |
インタフェース javax.microedition.lcdui.Choice から継承されたフィールド |
---|
EXCLUSIVE, IMPLICIT, MULTIPLE, POPUP, TEXT_WRAP_DEFAULT, TEXT_WRAP_OFF, TEXT_WRAP_ON |
コンストラクタの概要 | |
---|---|
List(String title,
int listType)
タイトルおよびリストのタイプを指定して、新しい空のオブジェクトを作成します。 |
|
List(String title,
int listType,
String[] stringElements,
Image[] imageElements)
タイトル、リストのタイプおよび初期設定する選択肢の文字列およびイメージの配列を指定して、新しいオブジェクトを作成します。 |
メソッドの概要 | |
---|---|
int |
append(String stringPart,
Image imagePart)
List に要素を追加します。 |
void |
delete(int elementNum)
elementNum が示す要素を削除します。 |
void |
deleteAll()
この List から全ての要素を削除します。 |
int |
getFitPolicy()
利用可能な画面スペースに Choice 要素コンテンツを表示する際のアプリケーションに都合のよい適合指針を返します。 |
Font |
getFont(int elementNum)
指定した要素を描画する際に使用するフォントを返します。 |
Image |
getImage(int elementNum)
elementNum が示す要素のイメージ部分を取得します。 |
int |
getSelectedFlags(boolean[] selectedArray_return)
List の状態を問い合わせ、boolean 配列の selectedArray_return に全ての要素の状態を返します。 |
int |
getSelectedIndex()
List で選択されている要素のインデックス番号を返します。 |
String |
getString(int elementNum)
elementNum が示す要素の文字列部分を取得します。 |
void |
insert(int elementNum,
String stringPart,
Image imagePart)
指定した要素を List の指定した位置の要素のすぐ手前に挿入します。 |
boolean |
isSelected(int elementNum)
要素内の指定位置の選択肢が選択状態か否かを返します。 |
void |
removeCommand(Command cmd)
Displayable.removeCommand と同じですが、以下の追加の意味があります。 |
void |
set(int elementNum,
String stringPart,
Image imagePart)
elementNum が示す String と Image を新しい内容で置き換えます。 |
void |
setFitPolicy(int fitPolicy)
利用可能な画面スペースに Choice 要素コンテンツを表示する際のアプリケーションに都合のよい適合指針を設定します。 |
void |
setFont(int elementNum,
Font font)
指定した要素を描画する際に使用するフォントを設定します。 |
void |
setSelectCommand(Command command)
Command を IMPLICIT List の選択動作で使用するように設定します。 |
void |
setSelectedFlags(boolean[] selectedArray)
List の全ての要素の選択状態を設定します。 |
void |
setSelectedIndex(int elementNum,
boolean selected)
要素の選択状態を設定します。 |
int |
size()
保持している要素数を返します。 |
クラス javax.microedition.lcdui.Displayable から継承されたメソッド |
---|
addCommand, getHeight, getTicker, getTitle, getWidth, isShown, setCommandListener, setTicker, setTitle, sizeChanged |
クラス java.lang.Object から継承されたメソッド |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
public static final Command SELECT_COMMAND
IMPLICIT
List
のためのデフォルト選択コマンドです。
IMPLICIT
List
を使用するアプリケーションは、setSelectCommand
を使用して自らの選択コマンドを設定すべきです。
SELECT_COMMAND
に設定されている Command
の内容は以下の通りです:
label = ""
(つまり「空」の文字列)
type =
SCREEN
priority = 0
(type
が ITEM
であれば、さらに適切ですが、歴史的な経緯により type
には SCREEN
が設定されています)
アプリケーションは SELECT_COMMAND
を認識するためにこれらの内容を参照してはなりません。
代わりに Command
と Displayable
(つまり List
)のオブジェクトが一致するか否かで判定しなければなりません。
これが他の Displayable
とともに使用されるなら、通常の Command
と同様に SELECT_COMMAND
は扱われます。
コンストラクタの詳細 |
---|
public List(String title, int listType)
タイトルおよびリストのタイプを指定して、新しい空のオブジェクトを作成します。
title
- スクリーンのタイトルを渡します。listType
- IMPLICIT
、EXCLUSIVE
、MULTIPLE
のいずれかのリストタイプを渡します。
IllegalArgumentException
- listType
が IMPLICIT
、EXCLUSIVE
、MULTIPLE
のいずれかではない場合に throw します。Choice
public List(String title, int listType, String[] stringElements, Image[] imageElements)
タイトル、リストのタイプおよび初期設定する選択肢の文字列およびイメージの配列を指定して、新しいオブジェクトを作成します。
stringElements
は null
であってはなりません。
また、全ての配列要素も null
であってはなりません。
stringElements
の配列長が選択肢の要素数となります。
imageElements
はイメージが不要の場合は null
を渡すことができます。
同様に個々の配列要素もイメージが不要な場合は null
とすることができます。
imageElements
が null
ではない場合、その配列長は stringElements
の配列長と同じでなければなりません。
以下の場合に例外を throw します。
stringElements
が null
か、配列に null
が含まれる場合には NullPointerException
を throw します。
imageElements
が null
ではなく imageElements
の配列長が stringElements
の配列長と一致しない場合は IllegalArgumentException
を throw します。
choiceType
に IMPLICIT
、EXCLUSIVE
および MULTIPLE
以外が渡された場合は IllegalArgumentException
を throw します。
title
- スクリーンのタイトルを渡します。詳しくは Screen
を参照してください。listType
- IMPLICIT
、EXCLUSIVE
、MULTIPLE
のいずれかのリストタイプを渡します。stringElements
- 選択肢の文字列部分を配列で渡します。imageElements
- 選択肢のイメージ部分を配列で渡します。
NullPointerException
- パラメータに不適切な null
が含まれていた場合に throw します。
IllegalArgumentException
- パラメータに不適切な値が含まれていた場合に throw します。Choice.EXCLUSIVE
,
Choice.MULTIPLE
,
Choice.IMPLICIT
メソッドの詳細 |
---|
public int size()
保持している要素数を返します。
Choice
内の size
public String getString(int elementNum)
elementNum
が示す要素の文字列部分を取得します。
Choice
内の getString
elementNum
- 文字列を取り出す要素内の位置を渡します。
IndexOutOfBoundsException
- elementNum
に不適切な値が渡された場合に throw します。getImage(int)
public Image getImage(int elementNum)
elementNum
が示す要素のイメージ部分を取得します。
Choice
内の getImage
elementNum
- イメージを取り出す要素内の位置を渡します。
null
を返します。
IndexOutOfBoundsException
- elementNum
に不適切な値が渡された場合に throw します。getString(int)
public int append(String stringPart, Image imagePart)
List
に要素を追加します。
Choice
内の append
stringPart
- 追加する選択肢の文字列部分を渡します。imagePart
- 追加する選択肢のイメージ部分あるいはイメージ部分が存在しなければ null
を渡します。
NullPointerException
- stringPart
が null
の場合に throw します。public void insert(int elementNum, String stringPart, Image imagePart)
指定した要素を List
の指定した位置の要素のすぐ手前に挿入します。
Choice
内の insert
elementNum
- 選択肢を挿入する要素内の位置を渡します。stringPart
- 挿入する選択肢の文字列部分を渡します。imagePart
- 挿入する選択肢のイメージ部分あるいはイメージ部分が存在しなければ null
を渡します。
IndexOutOfBoundsException
- elementNum
に不適切な値が渡された場合に throw します。
NullPointerException
- stringPart
が null
の場合に throw します。public void delete(int elementNum)
elementNum
が示す要素を削除します。
Choice
内の delete
elementNum
- 削除する対象の要素内の位置を渡します。
IndexOutOfBoundsException
- elementNum
に不適切な値が渡された場合に throw します。public void deleteAll()
この List
から全ての要素を削除します。
Choice
内の deleteAll
public void set(int elementNum, String stringPart, Image imagePart)
elementNum
が示す String
と Image
を新しい内容で置き換えます。
Choice
内の set
elementNum
- 置き換える対象の要素内の位置を渡します。stringPart
- 置き換える選択肢の文字列部分を渡します。imagePart
- 挿入する選択肢のイメージ部分あるいはイメージ部分が存在しなければ null
を渡します。
IndexOutOfBoundsException
- elementNum
に不適切な値が渡された場合に throw します。
NullPointerException
- stringPart
が null
の場合に throw します。public boolean isSelected(int elementNum)
要素内の指定位置の選択肢が選択状態か否かを返します。
Choice
内の isSelected
elementNum
- 選択状態を取得する対象の要素内の位置を渡します。
IndexOutOfBoundsException
- elementNum
に不適切な値が渡された場合に throw します。public int getSelectedIndex()
List
で選択されている要素のインデックス番号を返します。
Choice
内の getSelectedIndex
-1
を返します。public int getSelectedFlags(boolean[] selectedArray_return)
List
の状態を問い合わせ、boolean
配列の selectedArray_return
に全ての要素の状態を返します。
Choice
内の getSelectedFlags
selectedArray_return
- 結果を受け取る配列を渡します。
IllegalArgumentException
- 配列長が不足している場合に throw します。
NullPointerException
- selectedArray_return
に null
が渡された場合に throw します。public void setSelectedIndex(int elementNum, boolean selected)
要素の選択状態を設定します。
Choice
内の setSelectedIndex
elementNum
- ゼロから始まる要素のインデックス番号を渡します。selected
- 対象の要素を選択する場合 true
を、非選択状態にする場合 false
を渡します。
IndexOutOfBoundsException
- elementNum
に不適切な値が渡された場合に throw します。public void setSelectedFlags(boolean[] selectedArray)
List
の全ての要素の選択状態を設定します。
Choice
内の setSelectedFlags
selectedArray
- 設定する選択状態を示す配列を渡します。
IllegalArgumentException
- 配列長が不足している場合に throw します。
NullPointerException
- selectedArray
に null
が渡された場合に throw します。public void removeCommand(Command cmd)
Displayable.removeCommand
と同じですが、以下の追加の意味があります。
取り除く対象のコマンドがもしも選択コマンドであるなら、選択コマンドを持たぬように設定し、List
からコマンドを取り除きます。
以下のコード:
// コマンド c は、リスト list における選択コマンドです list.removeCommand(c);
以下のコードと等価です:
// コマンド c は、リスト list における選択コマンドです list.setSelectCommand(null); list.removeCommand(c);
Displayable
内の removeCommand
cmd
- 取り除く対象のコマンドを渡します。public void setSelectCommand(Command command)
Command
を IMPLICIT
List
の選択動作で使用するように設定します。
デフォルトで暗黙の選択において List
は事前に定義された SELECT_COMMAND
を用います。
適切なパラメータ値で List.setSelectCommand()
メソッドを呼び出すことで、この振る舞いをオーバーライドすることができます。
null
参照が渡されるなら、これは、この List
の内容には、どのような「選択」アクションも適切ではないことを意味します。
コマンドオブジェクトの参照が渡され、それが特別なコマンドである SELECT_COMMAND
ではなく、またそれが現在この List
オブジェクトに存在していなければ、コマンドオブジェクトは addCommand(command)
の呼び出しと等価であるようにこの List
に加え、選択コマンドとして使用できるようにします。
これは、このコマンドがユーザーがこの List
の要素に対して「選択」を行った際に、発動されることを示します。
選択コマンドとして、現在選択されているオブジェクトはコマンドタイプとして ITEM
を示すべきです。
ある他のタイプを持つコマンドがあるとしても、それは誤りではありません(List.SELECT_COMMAND
は歴史的経緯から SCREEN
タイプを持ちます)。
ユーザーインタフェースにおける提供と交換を目的として、実装はまるでタイプ ITEM
であるかのように選択コマンドを扱うことができます。
あとで removeCommand()
によって List
から選択コマンドを取り除くと、まるで List.setSelectCommand(null)
を呼び出したかのように、選択コマンドを持たない状態に List
を設定します。
List.SELECT_COMMAND
を引数に setSelectCommand()
を呼び出すことにより、デフォルトの振る舞いを明示的に回復させることができます。
このメソッドは List
のタイプが IMPLICIT
でなければ効果はありません。
command
- Choice.IMPLICIT
List
の選択アクションで使用するコマンドか、コマンドを設定しないのであれば null
を渡します。public void setFitPolicy(int fitPolicy)
利用可能な画面スペースに Choice
要素コンテンツを表示する際のアプリケーションに都合のよい適合指針を設定します。
指定された指針は全ての要素に適用します。
有効な値は、Choice.TEXT_WRAP_DEFAULT
、Choice.TEXT_WRAP_ON
および Choice.TEXT_WRAP_OFF
です。
適合指針はヒントとし使用します。実装はアプリケーションが設定した適合指針を無視することがあります。
Choice
内の setFitPolicy
fitPolicy
- Choice
要素に適応する適合指針を渡します。Choice.getFitPolicy()
public int getFitPolicy()
利用可能な画面スペースに Choice
要素コンテンツを表示する際のアプリケーションに都合のよい適合指針を返します。
設定された適合指針を無視する場合でも、返す値は常にアプリケーションが設定した適合指針です。
Choice
内の getFitPolicy
Choice.TEXT_WRAP_DEFAULT
、Choice.TEXT_WRAP_ON
または Choice.TEXT_WRAP_OFF
のいずれかを返します。public void setFont(int elementNum, Font font)
指定した要素を描画する際に使用するフォントを設定します。 要素のフォントはヒントとして扱います。実装はアプリケーションが指定したフォントを無視することがあります。
パラメータ elementNum
は 0
〜 Choice.size()
の範囲内で指定しなければなりません。
パラメータ font
は有効な Font
オブジェクトか null
でなければなりません。
パラメータ font
が null
ならば、実装は要素の描画にデフォルトのフォントを使用しなければなりません。
Choice
内の setFont
elementNum
- フォントを設定する対象の要素内の位置を渡します。font
- 要素を描画する際に使用するフォントを渡します。Choice.getFont(int)
public Font getFont(int elementNum)
指定した要素を描画する際に使用するフォントを返します。
設定されたフォントを無視する場合でも、返すフォントは常にアプリケーションが設定したフォントです。
どのようなフォントもアプリケーションが設定していないか、アプリケーションが null
を明示して設定した場合は、実装が選択したデフォルト・フォントを返します。
パラメータ elementNum
は 0
〜 Choice.size()
の範囲内で指定しなければなりません。
Choice
内の getFont
elementNum
- フォントを取得する対象の要素内の位置を渡します。
Choice.setFont(int, javax.microedition.lcdui.Font)
|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
公式仕様書原文の著作権表記等(※): Mobile Information Device Profile Specification ("Specification") Version: 2.0 Status: FCS Release: November 5, 2002 Copyright 2002 Sun Microsystems, Inc. and Motorola, Inc. All rights reserved. | ※ただしこの API リファレンスは英語仕様を一語一句正確に翻訳したものではなく、一度私が英語の仕様原文を読んだ上で元の意味と構造をなるべく保つように書き起こしたものです。このため一部は完全に異なる説明となっています。また CLDC 1.1 部分は同仕様の範囲外であるため、まったく参考とはしていません。 ※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。 |