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で質問しましょう!
似たような質問が見つかりました
- 物理学 xは位置 yは速さ tは時刻 (1) x=a sin(bt+c) (2) v=a sin(bt+c) 4 2023/06/14 02:09
- 据え置き型ゲーム機 PS4の音声をBluetoothイヤホンで聴きたい 1 2022/11/07 03:07
- テレビ 車用TVアンテナの配置について 1 2022/11/10 19:42
- Bluetooth・テザリング PRIME Z390-PでWIFI&Bluetooth 2 2022/04/01 19:25
- 数学 微分方程式の積分定数について 5 2023/07/13 08:39
- 不妊 不妊治療アプリについて 2 2023/03/05 09:50
- Bluetooth・テザリング Ubuntu22.04ltsです。 ブルートゥースのUSBアダプターを使っています。 パソコンはID 1 2023/08/06 12:30
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- iPhone(アイフォーン) apple music liveが無料で聞けてしまう 3 2023/02/22 14:50
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
このQ&Aを見た人はこんなQ&Aも見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
複数のボタンを配置し、それぞれにイベント処理をつける
Java
-
画面を隠す・消す方法を教えてください。
Java
-
フォーム上で押されたボタンによってサーブレットの処理を変えたい
Java
-
-
4
JPanelの切り替えと再描画
Java
-
5
テキストエリアで改行する
Java
-
6
テキストボックスの入力をリセット
JavaScript
-
7
配列に対してsetText()は使えないんでしょうか?
Java
-
8
Buttonを配列とすることができるでしょうか
Java
-
9
コンボボックスを使う時の警告
Java
-
10
JButton配列でのイベント処理
Java
-
11
ボタンのイベントで異なるウィンドウを表示させたい。(swing)
Java
-
12
Javaを使ってデジタル時計を作りたいです。時、分、秒も表示させたいです。
Java
-
13
JPanelの重ね方/OverlayLayout他
Java
-
14
同じコンポーネントを複数の場所に配置したい
Java
-
15
JAVAでの背景画像表示
Java
-
16
Java初級 引数に適用できません
Java
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[C#.net]スレッド化された別フ...
-
Javaでパラパラアニメを作成す...
-
大量のデータを読み込んで表示...
-
数独の問題作成
-
ボタンのイベントで異なるウィ...
-
【java】座標の値をテキストフ...
-
Thread.sleepのInterruptedExce...
-
Junitテストでvoid戻り値メッソ...
-
GetDIBits関数の使い方について
-
C#で、あるクラスのメンバーす...
-
javaアプレット repaintのタイ...
-
C# DataGridView列カスタマイズ
-
【javaアプレット】スクロール...
-
C# 半角カナの文字化けについて
-
ペイントソフトを作っているの...
-
二分探索木の要素の数を数える...
-
Processingでマウスクリックで...
-
struts2のchainで値の受け渡し...
-
C# タスク非表示でタイトルバー...
-
JWindow、JFrameでモーダル化の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
ボタンの複数割り当てについて
-
C#で、あるクラスのメンバーす...
-
Junitテストでvoid戻り値メッソ...
-
C#でのWNetAddConnection3の使...
-
C# 矢印キーの取得
-
Thread.sleepのInterruptedExce...
-
unityでのC++エラーの原因がわ...
-
C#で別のFormへ複数の値を返そ...
-
C# visibleプロパティをfalseに...
-
エンターキーを押すとOKボタン...
-
Processingでマウスクリックで...
-
[C#.net]スレッド化された別フ...
-
C#でキーイベントが発生しない...
-
C# DataGridView列カスタマイズ
-
【C#】ソースコードをファイル...
-
LVM_SETITEMSTATEでListViewの...
-
GetDIBits関数の使い方について
-
未割り当てのローカル変数
-
C# MouseHoverを何度も呼ぶには
おすすめ情報