- 締切済み
p.add(myPanel());にエラーが出ます
試行錯誤の末、テキストボックスの下にタイマーを表示したいので、下のソースのように両方Panelで実装したのですが、p.add(myPanel());にエラーがでます。どう変更すればよいでしょうか? import com.nttdocomo.ui.*; import com.nttdocomo.util.*; public class textbox extends IApplication implements ComponentListener { TextBox textbox1; TextBox textbox2; public void start(){ Panel p = new Panel(); textbox1 = new TextBox("",16,2,TextBox.DISPLAY_ANY); p.add(textbox1); textbox2 = new TextBox("(未入力)",16,2, TextBox.DISPLAY_ANY); textbox2.setEditable(false); p.add(textbox2); p.setComponentListener(this); p.add(myPanel()); Display.setCurrent(p); } class myPanel extends Panel implements TimerListener{ public Timer myTimer; public int cnt = 0; public Label lb; public myPanel(){ //新しいラベルをつくり表示する lb = new Label("カウント開始"); add(lb); //タイマーを作成 myTimer = new Timer(); //タイマーイベントの時間間隔を設定 myTimer.setTime(1000); //タイマーイベントを繰り返し発生させるかどうか設定 myTimer.setRepeat(true); //タイマーリスナーを登録 myTimer.setListener(this); //タイマーの開始 myTimer.start(); } //タイマーイベントの処理 public void timerExpired(Timer iTimer) { cnt++; lb.setText("カウント["+cnt+"]"); } } public void componentAction(Component source , int type, int param) { if(type == ComponentListener.TEXT_CHANGED && source == textbox1) { textbox2.setText(textbox1.getText()); } } }
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- planet_9_9
- ベストアンサー率68% (57/83)
Panelに別のPanelはadd出来ません。 別の質問でも書きましたが、テキストボックスとストップウォッチを1画面に表示したければ 1つのPanelあるいは1つのCanvas内にテキストボックスとストップウォッチの両方を実装する必要があります。 これも別の質問でも書きましたが、一度「iアプリコンテンツ開発ガイド」をよく読むことをお勧めします。 少なくともPanelに別のPanelをadd出来ないことはガイドを読めば分かりますし APIリファレンスのPanel.add()を見ればPanelをadd出来ないことは分かるかと思います。
- Tacosan
- ベストアンサー率23% (3656/15482)
せめて new してあげよう.