- ベストアンサー
iアプリで複数の画面(パネル)を使う方法
- iアプリで複数の画面(パネル)を使う方法について教えてください。
- 以下のコードを実行すると、ボタンとラベルが一緒の画面に表示されます。しかし、ボタンを押した時に新しい画面(パネル)でラベルを表示したいです。
- どのようにすれば良いでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 1つのクラスで実現するまで単純化した例です。 - - - - - - - - - - import com.nttdocomo.ui.*; public class Test02 extends IApplication implements ComponentListener { private Panel p1, p2; private Label lbl1, lbl2; private Button btn; public void start() { // 最初の画面作成 p1 = new Panel(); lbl1 = new Label("最初の画面"); btn = new Button("次画面へ"); p1.add(lbl1); p1.add(btn); p1.setComponentListener(this); // 次の画面作成 p2 = new Panel(); lbl2 = new Label("次の画面"); p2.add(lbl2); // 最初の画面をセット Display.setCurrent(p1); } public void componentAction(Component source, int type, int param) { if(source == btn && type == ComponentListener.BUTTON_PRESSED) { Display.setCurrent(p2); // 次の画面をセット } } }
その他の回答 (1)
- koki_m
- ベストアンサー率83% (45/54)
こんばんは。 2つ目の画面を用意することと、コンポーネントリスナーを実装するだけで出来ると思います。 ↓元ソースよりシンプルにしてあります。 - - - - - - - - - - import com.nttdocomo.ui.*; public class test01 extends IApplication { private mypanel p1; private mypanel p2; public void start() { p1 = new mypanel("PANEL 1"); p2 = new mypanel("PANEL 2"); Display.setCurrent(p1); } class mypanel extends Panel implements ComponentListener { // * private Label lbl; private Button btn; public mypanel(String lblt){ btn = new Button("NEXT"); add(btn); lbl = new Label(lblt); add(lbl); setComponentListener(this); // * } public void componentAction(Component source, int type, int param) { // * if(type == ComponentListener.BUTTON_PRESSED) { // ボタンのイベントか判定 if(source == p1.btn) { // イベント発信元がパネル1のボタンの場合 Display.setCurrent(p2); // パネル2を表示 } else if(source == p2.btn) { // イベント発信元がパネル2の場合 Display.setCurrent(p1); // パネル1を表示 } } } } }
補足
回答ありがとうございます。 素人なのでなかなか理解できなくて恐縮ですが、2つ目の画面でボタンを表示せず、ラベルだけ表示することはできるのでしょうか?
お礼
早速の回答ありがとうございます!! おかげさまで謎がとけました。