
public class TestButton extends Applet implements ActionListener
{
Button bt1,bt2,bt3;
public void init()
{
bt1 = new Button("red");
add(bt1);
bt2 = new Button("blue");
add(bt2);
bt3 = new Button("yellow");
add(bt3);
bt1.addActionListener(this);
}
java初心者です。アプレットで上のようにボタンを作ります。それぞれが押された時に、red,blue,yellowが表示されるようにしたいのです。ActionListenerをインプリメントしているので、
public void actionPerformed(ActionEvent ae)
をオーバーライドする必要がありますが、そこで質問です。
ボタンを3種類別々に関連づけるには、actionPerformed内をどのように記述したらよいでしょうか?また、init内はこれだけでいいんでしょうか?
よろしくお願いします。
No.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文書にして永久保存するつもりです。ありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Googleログインボタンのデザイ...
-
JDONWROADER2のエラー修復
-
googleスプレッドシートのスク...
-
googleスプレッドシートのGASに...
-
JAの支部?地域の農協のカード...
-
「main メソッドを持つクラスが...
-
jdk17.06のインストーラーが起...
-
eclipse実行ができない
-
結果的につかあなかったけど
-
配列にnullを代入すると、null...
-
eclipseで作ったプログラムを他...
-
スプレッドシートからリマイン...
-
Verilogについて質問です。この...
-
論理回路設計をVerilogで行う問...
-
ゲーム開発の入門書を探しています
-
jdbcでinsert,delete,createをe...
-
session,requestはjspで未定義...
-
サーブレットをapacheで公開す...
-
下記のリストならno002が含まれ...
-
is this even a thing?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JDONWROADER2のエラー修復
-
Googleログインボタンのデザイ...
-
googleスプレッドシートのGASに...
-
「main メソッドを持つクラスが...
-
配列にnullを代入すると、null...
-
jdbcでinsert,delete,createをe...
-
プログラミングの問題です。大...
-
正規表現について質問です。 カ...
-
Eclipse 動的プロジェクトで404...
-
マイクラでPythonのプログラミ...
-
JSFタグのfタグとは
-
スプレッドシートからリマイン...
-
Processingでマウスクリックで...
-
eclipse実行ができない
-
eclipseで作ったプログラムを他...
-
次のhtml・cssでspan内の文字を...
-
プログラミングのプの字も知り...
-
自作Androidアプリのデータ引き...
-
直し方について教えて頂きたい...
-
googleスプレッドシートのスク...
おすすめ情報