• 締切済み

イベント処理(コンポーネントの配列の場合)を簡単に記述したい

i-appliをpanelで作成しています。 コンポーネントを配列にして配置した場合、 イベントを受け取るときには個別に処理を記述するしかないのでしょうか? ListBox[] lbox = new ListBox[16]; Button[] btn = new Button[16]; ... public void componentAction(Component w_component, int w_type, int w_param){   if(w_type == BUTTON_PRESSED) {     if(w_component == btn[0]){ ... }     else if(w_component == btn[1]){ ... }     ...     else if(w_component == btn[15]){ ... }     // ↑簡単に記述できないでしょうか?   }   if(w_type == SELECTION_CHANGED){     if(w_component == lbox[0]){ ... }     else if(w_component == lbox[1]){ ... }     ...     else if(w_component == lbox[15]){ ... }   } } よろしくお願いします。

みんなの回答

回答No.4

setはCLDCプロファイルには無いみたいですね。 打ち間違いでした。正しくは↓ awtはCLDCプロファイルには無いみたいですね。

すると、全ての回答が全文表示されます。
回答No.3

setはCLDCプロファイルには無いみたいですね。 com.nttdocomo.uiを使ってみましょう。 それから、googleとかで検索すればこの程度の情報はたくさん出てきます。 ここで聞くよりも早く解決できるので、ご自分でも調べてみてはいかがでしょうか。

すると、全ての回答が全文表示されます。
回答No.2

こんにちは。 パネルでなくて、各ボタンにアクションリスナーをaddしてあげてはどうですか? たとえばアクションリスナーを1つ作ってそれを使い回すとか、、、 public class MyActionListener implements ActionListener { private ListBox listBox; public MyActionListener(ListBox listBox) { this.listBox = listBox; } public void actionPerformed(ActionEvevt evt) { this.listBox.setItems ... } } で各ボタンにアクションリスナーを登録 for(int idx = 0 ; idx < btn.length ; idx++) { ActionListener myActionListener = new MyActionListener(lbox[idx]); btn[idx].addActionListener(myActionListener); }

dennyz_Q
質問者

補足

ありがとうございます。 i-appliを作る際に、「java.awt」は使えるのでしょうか? eclipseを使っているのですが、 「import java.awt.*;」と書くと 「インポートされた java.awt は見つかりません。」となります。 お手数ですが、よろしくお願いします。

すると、全ての回答が全文表示されます。
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 BUTTON_PRESSEDのアクションやSELECTION_CHANGEDのアクションで それぞれのオブジェクトが違う処理をするなら別々に書くしかないと思います。 何を処理したいかで書き方は変わると思います。 それぞれ何の処理をするか補足頂ければ他のアドバイスが出来ると思います。

dennyz_Q
質問者

補足

ご回答ありがとうございます。説明不足でした。 例えば以下のように、同じ数のリストボックスとボタンがあって、 配列の番号が同じものを操作したいと思っています。 ([0」、[1]の数字以外は同じ記述です)   if(w_type == BUTTON_PRESSED) {     if(w_component == btn[0]){ lbox[0].setItems ...}     else if(w_component == btn[1]){ lbox[1].setItems ...}     ...     else if(w_component == btn[15]){ lbox[15].setItems ...}   }

すると、全ての回答が全文表示されます。

関連するQ&A