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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
複数のボタンを配置し、それぞれにイベント処理をつける
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ランキング
-
エンターキーを押すとOKボタン...
-
ペイントソフトを作っているの...
-
GetDIBits関数の使い方について
-
C#で、あるクラスのメンバーす...
-
C#から、C++で作成したdll内の...
-
マルチスレッドプログラムから...
-
大量のデータを読み込んで表示...
-
JButtonの画像をactionPerforme...
-
C#で別のFormへ複数の値を返そ...
-
Junitテストでvoid戻り値メッソ...
-
C# LISTBOXの複数項目取得
-
C# visibleプロパティをfalseに...
-
struts2のchainで値の受け渡し...
-
Javaの課題について質問です。...
-
パスがとおらない・・・
-
unityでのC++エラーの原因がわ...
-
Log4jで機能毎に別ファイルへ出...
-
flush()とclose()について
-
C言語のポインターに関する警告
-
IF関数でEmpty値を設定する方法。
マンスリーランキングこのカテゴリの人気マンスリー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を何度も呼ぶには
おすすめ情報