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]){ ... }
  }
}

よろしくお願いします。

A 回答 (4件)

setはCLDCプロファイルには無いみたいですね。



打ち間違いでした。正しくは↓

awtはCLDCプロファイルには無いみたいですね。
    • good
    • 0

setはCLDCプロファイルには無いみたいですね。


com.nttdocomo.uiを使ってみましょう。
それから、googleとかで検索すればこの程度の情報はたくさん出てきます。
ここで聞くよりも早く解決できるので、ご自分でも調べてみてはいかがでしょうか。
    • good
    • 0

こんにちは。


パネルでなくて、各ボタンにアクションリスナーを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);
}

この回答への補足

ありがとうございます。

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

お手数ですが、よろしくお願いします。

補足日時:2009/12/27 17:58
    • good
    • 0

こんにちは。



BUTTON_PRESSEDのアクションやSELECTION_CHANGEDのアクションで
それぞれのオブジェクトが違う処理をするなら別々に書くしかないと思います。

何を処理したいかで書き方は変わると思います。
それぞれ何の処理をするか補足頂ければ他のアドバイスが出来ると思います。

この回答への補足

ご回答ありがとうございます。説明不足でした。
例えば以下のように、同じ数のリストボックスとボタンがあって、
配列の番号が同じものを操作したいと思っています。
([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 ...}
  }

補足日時:2009/12/21 14:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング