- ベストアンサー
ボタンの複数割り当てについて
- ボタンを3種類別々に関連づける方法について教えてください。
- ボタンを押すと、red, blue, yellowと表示されるようにする方法を教えてください。
- 初心者です。ボタンの関連付けについてアドバイスしてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
これは色々やり方があります。 ボタンをメンバ変数として定義してActionEventの getSource()メソッドでEventが発生したObjectと 比較するとか、getSource()で取得したオブジェクト をButtonにキャストしてからgetLabel()でラベルの 文字列を取得し任意の文字列と比較するとか。 他にはアクションコマンドで分岐する方法もあります。 ・メンバ変数の例 public class TestButton extends Applet implements ActionListener { Button btn1,btn2,bt3; public void init(){ btn1=new Button("red"); add(btn1); btn2=new Button("blue"); add(btn2); btn3=new Button("yellow"); add(btn3); } public void actionPerformed(ActionEvent e){ Object obj=e.getSource(); if(obj == btn1){ // "red"の処理 } else if(obj == btn2){ // "blue"の処理 } else if(obj == btn3){ // "yellow"の処理 } } } ・ラベルで比較する例 public void acitonPerformed(ActionEvent e){ Object obj=e.getSource(); if(obj instanceof Button){ Button btn=(Button)obj; String labStr=btn.getLabel(); if("red".equals(labStr)){ // "red"の処理 } else if("blue".equals(labStr)){ // "blue"の処理 } else if("yellow".equals(labStr)){ // "yellow"の処理 } } } ・アクションコマンドの例 public void actionPerformed(ActionEvent e){ String cmdName=e.getActionCommand(); if("red".equals(cmdName)){ // "red"の処理 } else if("blue".equals(cmdName)){ // "blue"の処理 } else if("yellow".equals(cmdName)){ // "yellow"の処理 } } 制約が無ければアクションコマンドでの処理が私は好きです。
お礼
回答どうもありがとうございます。無事解決しました。JAVAのヘルプドキュメントを眺めながらどうしたらいいのかうんうん悩んでおりました。やはり経験した方に意見を聞くのが一番ですね。回答はWORD文書にして永久保存するつもりです。ありがとうございました!!