Unofficial
"CLDC 1.1
+ MIDP 2.0"
API Reference.
(日本語版)

javax.microedition.lcdui
クラス Command

java.lang.Object
  上位を拡張 javax.microedition.lcdui.Command

public class Command
extends Object

このクラスはアクション・イベントに関する情報をカプセル化して運搬するために使用します。 Command オブジェクト自身は実行すべきアクションの振る舞いそのものはカプセル化しません。 Command オブジェクトは実行すべき情報のみを含みます。

Command オブジェクトによるアクションを受け取るリスナーは Screen と関連した CommandListener に定義されています。 Command オブジェクトはユーザーインタフェースにより生成されます。 それらが生成する理由は Command オブジェクト内に含まれている情報によって判定することができます。

Command オブジェクトは特定のアクションを示すために関連付けられたユーザーインタフェースと連動して発生することがあります。 例えば、ソフト・ボタン、メニューアイテム、あるいはその他の直接的なユーザーインタフェースであることもあります。 例えば任意の方向へ傾けることによって対応する Command オブジェクトを発生させるかもしれません。

実装はコマンドの総数によってユーザーインタフェース上の表現および操作方法等が変更することがあります。 例えば、アプリケーションが少ないコマンドを必要とする場合は特定の物理的なキーにマッピングし、より多くのコマンドを必要とする場合はメニューなどユーザーインタフェースを使用するといった構成をとることがあります。

Command オブジェクトは短いラベル、オプションの長いラベルタイプおよびプライオリティの4つの情報を保持しています。 このうちラベルは視覚的な表現に用います。 残りのタイプとプライオリティは Command オブジェクトのセマンティクスとして使用します。 それぞれの要素の詳細は以下のとおりです。

ラベル

Command オブジェクトは1個か2個のラベル文字列を保持します。 ラベル文字列はアプリケーションが対象となるコマンドを実装がユーザーに提示する際に使用します。 例えばラベル文字列をメニューとして表示したり、ソフト・ボタンの近くに表示する際に使用したりするでしょう。 SCREEN 以外のコマンドタイプについては、設定されたラベルがデバイス上の用意されたより適切なラベルに読み替えられることがあります。 ただし、ラベル文字列の内容は実装によって別の内容に置き換えられることはありません。

全てのコマンドには短いラベルがあります。 長いラベルは任意です。 長いラベルがコマンドに存在していないならば、常に短いラベルを使用します。

短いラベル文字列はできる限り短くあるべきもので、それは最小物理画面を使用します。 長いラベルはより長くて、より説明文的ではあるかもしれませんが、数個の単語より長くすべきではありません。 例えば、コマンドの短いラベルが"Play"であったとして、それに対応する長いラベルが"Play Sound Clip"であるかもしれません。

実装は状況とユーザーインタフェースで使用可能な画面サイズに基づいて1つのラベルを選択します。 例えばコマンドがソフト・ボタンに割り当てられるなら実装は短いラベルを使用するかもしれません。また、コマンドがメニューに割り当てられ、表示領域の余裕があれば実装は長いラベルを使用するかもしれません。 実装はいくつかのコマンドで短いラベルを使用し、他のコマンドで長いラベルを使用するかもしれません。また、長いラベルと短いラベルを自由自在に切り替えて使用することができます。 アプリケーションはどのラベルがその時々で使用されるべきであるかという指定をすることはできません。

タイプ

Command オブジェクトがどのような意味を持って生成されたかを示すのがタイプです。 例えば、コマンドタイプが「back」であることをアプリケーションが明示した場合、実装はデバイスが標準として提供する「back」に対応するオペレーションスタイルに合わせることができます。 定義されているタイプは、BACKCANCELEXITHELPITEMOKSCREENSTOP です。

プライオリティ

アプリケーションは、同じ Screen オブジェクト内の他の Command オブジェクトとこの Command オブジェクトの相対的な重要性を示すためにプライオリティ値を設定します。 実装はプライオリティ値がより小さい値であるほど重要性が高いと評価します。 実際に設定する値はアプリケーションに委ねられています。 アプリケーションは重要なコマンドほどプライオリティを高く(つまりより小さい値)したり、使用頻度順によって変更したりすることができます。

一般に、実装は最初に Command オブジェクトのタイプに基づいた Command オブジェクトのマッピングを決定し、次にプライオリティ順の Command オブジェクトのマッピングを行います。 これにより、プライオリティの高い同一タイプの Command オブジェクトをユーザーが直接発生させることができるようにソフト・ボタン等に割り当て、プライオリティが低い Command オブジェクトはメニューから呼び出すように割り当てるといった調整を行う機会を得ます。 同じタイプで同じプライオリティの Command オブジェクトを同一の Screen オブジェクトに登録するのは不正なことではありません。 このような登録が行われた場合、実装が順位を決定します。

例えばアプリケーションに以下のコマンドセットがあったとします:

 new Command(" 購入 ", Command.SCREEN, 1);
 new Command(" 情報 ", Command.SCREEN, 1);
 new Command(" 戻る ", Command.BACK, 1);

2つのソフト・ボタンが存在する実装では、BACK コマンドを右ソフト・ボタンに割り当て、"オプション"メニューとして他のコマンドを含む左ソフト・ボタンに作成するかもしれません。

ユーザーが左ソフト・ボタンを押すと、残り2つの Command がメニューで表示されます:

アプリケーションが使用可能な3つのソフト・ボタンがある場合には、全てのコマンドをソフト・ボタンに割り当てることができます。

アプリケーションは常にユーザーがスクリーンを移動する手段を提供すべきです。 アプリケーションは Command オブジェクトのリスナーを持っていない Screen オブジェクトを用意することもできます。 しかし、このような Screen オブジェクトはユーザーによって別のスクリーンに移動する手段を提供できないでしょう。 実装はこのような誤ったアプリケーションを停止させることができるような手段を提供すべきです。

導入されたバージョン:
MIDP 1.0

フィールドの概要
static int BACK
          以前のスクリーンへ戻るコマンドタイプを示す定数(=2)です。
static int CANCEL
          現在のスクリーンに対してユーザーが否定を表現するコマンドタイプを示す定数(=3)です。
static int EXIT
          ユーザーが現在実行中のアプリケーションを終了することを求めるコマンドタイプを示す定数(=7)です。
static int HELP
          ユーザーが現在のスクリーンに対するヘルプを求めるコマンドタイプを示す定数(=5)です。
static int ITEM
          現在のスクリーン上の特別なアイテムに特有なコマンドタイプであることを実装に暗に示す定数(=8)です。
static int OK
          現在のスクリーンに対してユーザーが肯定を表現するコマンドタイプを示す定数(=4)です。
static int SCREEN
          現在のスクリーンに対応するアプリケーション定義のコマンドタイプを示す定数(=1)です。
static int STOP
          ユーザーが現在の処理を停止することを求めるコマンドタイプを示す定数(=6)です。
 
コンストラクタの概要
Command(String label, int commandType, int priority)
          ラベル、タイプおよびプライオリティを受け取ってオブジェクトを構築します。
Command(String shortLabel, String longLabel, int commandType, int priority)
          ラベル、タイプおよびプライオリティを受け取ってオブジェクトを構築します。
 
メソッドの概要
 int getCommandType()
          設定されているコマンドタイプを返します。
 String getLabel()
          設定されている短いラベルを返します。
 String getLongLabel()
          設定されている長いラベルを返します。
 int getPriority()
          設定されているプライオリティを返します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

SCREEN

public static final int SCREEN

現在のスクリーンに対応するアプリケーション定義のコマンドタイプを示す定数(=1)です。 例えば「ロード」および「セーブ」など等で使用します。

関連項目:
定数フィールド値

BACK

public static final int BACK

以前のスクリーンへ戻るコマンドタイプを示す定数(=2)です。 実装は以前のスクリーンへの移動処理は提供しません。 アプリケーションが CommandListener インタフェースの commandAction メソッドを実装して処理を提供する必要がある点に注意が必要です。 これは以前のスクリーンがアプリケーションによって意味合いが異なる可能性があるためです。

関連項目:
CANCEL, STOP, 定数フィールド値

CANCEL

public static final int CANCEL

現在のスクリーンに対してユーザーが否定を表現するコマンドタイプを示す定数(=3)です。 実装はこのコマンドに対応する実装を提供しません。 アプリケーションが CommandListener インタフェースの commandAction メソッドを実装して処理を提供する必要があります。

アプリケーションはこのコマンドタイプを、現在のスクリーンに入力された内容等に触れずに、以前のスクリーンへ戻るような場合に使用すべきです。 通常、以前のスクリーンへ戻るコマンドタイプは BACK ですが、このコマンドタイプは特に否定を示す場合に使用するものです。

関連項目:
BACK, STOP, 定数フィールド値

OK

public static final int OK

現在のスクリーンに対してユーザーが肯定を表現するコマンドタイプを示す定数(=4)です。 実装はこのコマンドに対応する実装を提供しません。 アプリケーションが CommandListener インタフェースの commandAction メソッドを実装して処理を提供する必要があります。

アプリケーションはこのコマンドタイプを、現在のスクリーンの表示内容や入力内容を確認し、確定することを意味するような用途に使用すべきです。

関連項目:
CANCEL, 定数フィールド値

HELP

public static final int HELP

ユーザーが現在のスクリーンに対するヘルプを求めるコマンドタイプを示す定数(=5)です。 実装はこのコマンドに対応する実装を提供しません。 アプリケーションが CommandListener インタフェースの commandAction メソッドを実装して、このコマンドタイプを受け取った場合にはヘルプを提供する必要があります。

関連項目:
定数フィールド値

STOP

public static final int STOP

ユーザーが現在の処理を停止することを求めるコマンドタイプを示す定数(=6)です。 実装はこのコマンドに対応する実装を提供しません。 アプリケーションが CommandListener インタフェースの commandAction メソッドを実装して、このコマンドタイプを受け取った場合には実行中の処理を停止しなければなりません。

このコマンドタイプは実装に対して、ユーザーの求めに応じて現在実行中の処理を停止する処理をアプリケーションが提供することを暗に示します。 停止対象は時間のかかる演算処理やネットワークを経由したロード処理等を停止させる場合に使用すべきです。 このコマンドタイプは必ずしも他のスクリーンへの遷移を意味しません。

関連項目:
BACK, CANCEL, 定数フィールド値

EXIT

public static final int EXIT

ユーザーが現在実行中のアプリケーションを終了することを求めるコマンドタイプを示す定数(=7)です。 実装はこのコマンドに対応する実装を提供しません。 アプリケーションが CommandListener インタフェースの commandAction メソッドを実装して、このコマンドタイプを受け取った場合にはアプリケーションを終了すべきです。

関連項目:
定数フィールド値

ITEM

public static final int ITEM

現在のスクリーン上の特別なアイテムに特有なコマンドタイプであることを実装に暗に示す定数(=8)です。 例えば、リストの実装は状況を直ちに把握するためにこの情報を使用することができます。

関連項目:
定数フィールド値
コンストラクタの詳細

Command

public Command(String label,
               int commandType,
               int priority)

ラベル、タイプおよびプライオリティを受け取ってオブジェクトを構築します。 新たに作成されたコマンドには、長いラベルが設定されていません。 このコンストラクタは、Command(label, null, commandType, priority) の使用と等価です。

パラメータ:
label - 設定する短いラベル文字列を渡します。
commandType - 構築するタイプを渡します。
priority - コマンドのプライオリティを渡します。
例外:
IllegalArgumentException - 渡されたコマンドタイプが不正な場合に throw します。
NullPointerException - labelnull が指定された場合に throw します。

Command

public Command(String shortLabel,
               String longLabel,
               int commandType,
               int priority)

ラベル、タイプおよびプライオリティを受け取ってオブジェクトを構築します。

短いラベルは必須であり、null にすることはできません。 長いラベルは任意であり、コマンドが長いラベルを持たない場合は null を渡します。

パラメータ:
shortLabel - コマンドの短いラベルを渡します。
longLabel - コマンドの長いラベルまたは不要であれば null を渡します。
commandType - コマンドのタイプを渡します。
priority - コマンドのプライオリティを渡します。
例外:
IllegalArgumentException - 渡されたコマンドタイプが不正な場合に throw します。
NullPointerException - shortLabelnull が指定された場合に throw します。
導入されたバージョン:
MIDP 2.0
メソッドの詳細

getLabel

public String getLabel()

設定されている短いラベルを返します。

戻り値:
設定されている短いラベルを返します。

getLongLabel

public String getLongLabel()

設定されている長いラベルを返します。

戻り値:
設定されている長いラベル、または Command に長いラベルが設定されていなければ null を返します。
導入されたバージョン:
MIDP 2.0

getCommandType

public int getCommandType()

設定されているコマンドタイプを返します。

戻り値:
設定されているコマンドタイプを返します。

getPriority

public int getPriority()

設定されているプライオリティを返します。

戻り値:
設定されているプライオリティを返します。

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 部分は同仕様の範囲外であるため、まったく参考とはしていません。

※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。

この API リファレンスは仕様書の日本語版という位置づけでは作成していませんし、仕様書ほど厳格でもありません。MUST、SHOULD、MAY などの仕様の条件を強調する文を維持していません(反映すらしていない個所もあります)。仮想マシンおよび MIDP の実装のために使用することは避けてください。そのような用途には必ず公式仕様書原文そのものを用いるべきです。
この API リファレンスに記載されている内容は"さかきけい"が Sun Microsystems, Inc や Motorola, Inc、Java Community Process が公開している各種公式資料を元に、独自に調査・編集したものであり、Sun Microsystems, Inc や Motorola, Inc、Java Community Process 等とは一切関係ありません。したがってこの API リファレンスに関する問い合わせを関係各社等に対して行うことを固く禁じます。
また、記載された内容には既知か否かに関らず誤りが含まれる可能性があり、一切保証はありません。本 API リファレンスを使用した結果、不利益が生じたとしても"さかきけい"は一切の責任を負いません。
許可無く公開/非公開および Internet/Intranet/LAN を問わず他サイトに転載すること、複写および複製すること、ローカル・ファイル等に保存することを禁じます。


Copyright© 2001-2002,2005-2009,2011 by KEI SAKAKI.
ALL RIGHTS RESERVED.
無断転載を禁じます。

Unofficial "CLDC 1.0 + MIDP 1.0" API Reference はこちらです。