Panel は, Canvas と横並びのクラスです. i-mode のページでよく見られるユーザーインターフェイスを提供するクラスです. 自由に絵を描くことはできません. ここでは, Panel のインスタンスに add() することのできるもののうち,
を使ってみよう. 各自 API レファランス読んでね./* Panel の例 2002/10/07 Mon 10:36 */ import com.nttdocomo.ui.*; /** Panel の例のクラス */ public class PanelSample1 extends IApplication implements ComponentListener{ /** 起動するときに呼ばれる メソッド. 必須. */ public void start(){ Panel p=new Panel(); /****************************************************************/ // Label を追加 Label lb1=new Label("ラベルの例"); p.add(lb1); /****************************************************************/ // Ticker を追加 Ticker tc1=new Ticker("これがTickerの例です。右から左に文字列が流れていきます。"); p.add(tc1); /****************************************************************/ // Button を追加 bt1 = new Button("ボタンの例"); // bt1 は、このメソッドの中で宣言するのでなく、 // クラスメンバーとして宣言している。 // bt1 は componentAction にも知っていてもらわないといけないから。 p.add(bt1); /****************************************************************/ // (表示用) TextBox を追加 tb1 = new TextBox("",16,3,TextBox.DISPLAY_ANY); // "表示する文字列",横,縦,そのまま表示指定 tb1.setEditable(false); // ユーザーは入力不可。 tb1.setText("イベント表示領域。これは最初に表示される内容。"); p.add(tb1); /****************************************************************/ // (入力用) TextBox を追加 tb2 = new TextBox("",16,3,TextBox.DISPLAY_ANY); tb2.setEditable(true); // ユーザーは入力不可。 p.add(tb2); /****************************************************************/ // ListBox を追加 li1 = new ListBox(ListBox.CHOICE); // CHOICE, RADIO_BUTTON, SINGLE_SELECT, NUMBER_LIST のいずれか。 li1.append("カーミット"); li1.append("クッキーモンスター"); li1.append("エルモ"); li1.append("ビッグバード"); li1.append("アーニー"); li1.append("バート"); p.add(li1); /****************************************************************/ p.setComponentListener(this);// このクラスの componentListner を使う。 Display.setCurrent(p); // このパネルを表示。 } /** イベントリスナ。implements ComponentListner を宣言したらこれが必要*/ public void componentAction(Component source, int type, int param){ if( source == bt1 && type == BUTTON_PRESSED ){ tb1.setText("ボタンが押されたみたい。"); } else if ( source == tb2 && type == TEXT_CHANGED ){ tb1.setText(tb2.getText() + "と入力された。"); } else if ( source == li1 && type == SELECTION_CHANGED ){ if( param < 0){ return; } else { tb1.setText("選択が" + param + "番目の" + li1.getItem(param) + "に変更された。"); } } } Button bt1; TextBox tb1,tb2; ListBox li1; } /* Local Variables: mode: java End: */
ここで大事なのは, interface ComponentListner を実装(implements)して, Button, Textbox, ListBox の発生するイベントを拾う, という考え方です.