- ベストアンサー
[iアプリ]リストボックスから
単一選択のリストボックスを使用して リストボックスで選択した名前のページに 飛べるようなプログラムを作りたいと思ってます。 (htmlのリンクのような感じ) クラスを分けたほうがいいのか 1つのクラスで全部のページ(?)を作れるのか… 本を読んだのですがよく分かりません… 初心者ですので詳しい解説をつけて教えて下さい(>_<)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
「パネルの切り替え」をしたいということですよね。基本的には、せっかくオブジェクト指向プログラミングをしているわけだし、後々の事も考えて、私も「クラスを分けたほう」をお勧めします。 まず始めに、以下の参考URLの所にある「プロブラムソース"test10.java"」を元に、必要なページの数だけ、Panelのサブクラスを作成してください。("start"メソッドでのオブジェクト生成もお忘れなく。) その後、単一選択のリストボックスのあるクラスの"componentAction"メソッド内にて、該当するリストボックスが選択された時にされる処理の記述部分で、以下のメソッドを呼び出してください。(最初の"Hoge"で、IApplicationを継承したpublicなクラス名にキャストをし、次の"hogehoge"で、各Panelクラスのオブジェクトを指定します。この2つだけは変更が必要。) Display.setCurrent(((Hoge)IApplication.getCurrentApp()).hogehoge); おすすめiアプリ本(というか、定番ですね。)→ iアプリではじめて学ぶJavaプログラミング(著者:田口 景介、発行所:株式会社アスキー)
その他の回答 (1)
- koki_m
- ベストアンサー率83% (45/54)
こんばんは。サンプルはこのようになります。 - - - - - import com.nttdocomo.ui.*; public class Test01 extends IApplication implements ComponentListener { private Panel p1, p2; private ListBox lb1; public void start() { // 画面1作成 p1 = new Panel(); p1.setTitle("パネル1"); lb1 = new ListBox(ListBox.SINGLE_SELECT); lb1.append("選択してください"); lb1.append("パネル2"); lb1.select(0); p1.setComponentListener(this); p1.add(lb1); // 画面2作成 p2 = new Panel(); p2.setTitle("パネル2"); // 画面1を表示 Display.setCurrent(p1); } // アクションリスナーを実装 public void componentAction(Component source, int type, int param) { if(source == lb1 && type == ComponentListener.SELECTION_CHANGED) { switch(param) { case(0): // 選択してください を選択 break; case(1): // パネル2 を選択 Display.setCurrent(p2); break; } } } } - - - - - > クラスを分けたほうがいいのか > 1つのクラスで全部のページ(?)を作れるのか… 上記サンプルは「1つのクラス(内)で全部のページを作る」例です。 実際には「クラスを分けたほうがいい」と思います。
お礼
コピペさせてもらったら あっさりできました! ありがとうございます
お礼
やはりクラスを分けた方がいいのですね! 分かりやすく教えていただいて ありがとうございます!