50音のリストから選択したタイトルの画像を表示するようなプログラムを作ろうと思っているのですが、ItemListenerの2種類以上の使い方?が分かりません。
左側のChoiceからListの内容は書き換えることが出来たのですが、真ん中のListから右のListを書き換え、更には右のListから下部へ画像を表示させたいのです。
この場合どのように記入すればいいのか教えてください。お願いします。
以下拙いですが自分の書いた部分です
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class Test extends Applet implements ItemListener{
Panel p[]=new Panel[1];
Choice c1;
String s[]={"あ","い","う","え","お","か","き","く","け","こ",
"さ","し","す","せ","そ","た","ち","つ","て","と",
"な","に","ぬ","ね","の","は","ひ","ふ","へ","ほ",
"ま","み","む","め","も","や","ゆ","よ","","",
"ら","り","る","れ","ろ","わ","","","","",};
List lst1,lst2;
int i;
public void init() {
p[0]=new Panel(new GridLayout(1,3));
c1=(Choice)p[0].add(new Choice());
for (i=0;i<50;i=i+5)
c1.add(s[i]+"行");
c1.addItemListener(this);
lst1=(List)p[0].add(new List(5));
lst1.add(s[0]);
lst1.add(s[1]);
lst1.add(s[2]);
lst1.add(s[3]);
lst1.add(s[4]);
lst1.addItemListener(this);
lst2=(List)p[0].add(new List(5));
lst2.addItemListener(this);
add(p[0]);
}
public void itemStateChanged(ItemEvent e){
Choice c1=(Choice)e.getSource();
String str=(String)c1.getSelectedItem();
if(str.equals("あ行")){
lst1.removeAll();
for(i=0;i<5;i++){
lst1.add(s[i]);
}
lst2.removeAll();
}
else if(str.equals("か行")){
lst1.removeAll();
for(i=5;i<10;i++){
lst1.add(s[i]);
}
lst2.removeAll();
}
以下わ行まで書いてあります
}
public void destroy() {
}
}
No.1ベストアンサー
- 回答日時:
AWTは全然さわったことが無いのですが、やり方は複数あるようです。
itemStateChanged()の中でイベントの発生元を判別し処理を分岐する
Object source = e.getSource();
if (source == c1) {
//処理
} else if (source == lst1) {
//処理
}
インナークラスを利用する
private C1Listener implements ItemListener {
public void itemStateChanged(ItemEvent e) {
//処理
}
}
c1.addItemListener(new C1Listener());
匿名クラスを利用する
c1.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
//処理
}
}
などです。
参考URLなども読んで見て、ご自身に合ったやり方を選べばいいと思います。
参考URL:http://nextindex.jp/java/applet/awt/eventSummary …
迅速な回答を頂いたにもかかわらずお礼のほう遅れて申し訳ありません。
参考URL込みでとても分かりやすく、悩んでいた部分が解決しました!
本当にありがとうございました。
No.2
- 回答日時:
Appletを継承したクラス(今回はTestクラス)に
Listenerをimplementsするのではなく、
画面の各部品にListenerを実装するようにすればいいのよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- VPN 何これ 1 2022/04/19 01:32
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- C言語・C++・C# クラスのメンバ変数を基準に並べ替えをしたい 5 2022/12/25 17:40
- C言語・C++・C# Cのオブジェクトファイルの逆アセンブル 5 2023/05/13 01:51
- Java java final 1 2022/06/10 22:49
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- その他(趣味・アウトドア・車) LST 12V充電器と表示がありますが? 1 2022/07/20 07:16
- Excel(エクセル) Excelのマクロで、特定のセルから順番に値を取得したい 5 2022/12/06 15:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
java junit list同士の比較方法
-
Java本格じゃんけんで
-
’じゃんけん’をするプログラム...
-
画面のリサイズについて
-
cadで作った図面をフレーム上で...
-
Java subSetメソッドについて
-
VBAで配列の計算
-
配列にnullを代入すると、null...
-
ループ処理の際、最後だけ","を...
-
配列をセッションに割り当てた後で
-
1~100までの数字を表示し、か...
-
Log4jで機能毎に別ファイルへ出...
-
Junitテストでvoid戻り値メッソ...
-
シャットダウンフックが呼ばれない
-
EXCEL VBA で、0から?1から?
-
テキストボックスに入力された...
-
べき乗
-
グレイコードの変換
-
C# ListBoxのインデックスの値...
-
javaで質問です。 文字列2023/2...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
java junit list同士の比較方法
-
javaで文字数制限するには?
-
JTableの列ヘッダ
-
TextAreaでの文字の色
-
最後の行に移動するには?
-
【Swing】JPanel クラス外から...
-
4択クイズでのランダム出題の...
-
コンパイルエラー <identifier...
-
JPanelの重ね方/OverlayLayout他
-
JPanelの切り替えと再描画
-
エラーで式の開始が不正ですと...
-
JTable の 列幅を個別に設定す...
-
VB6.0でのTextboxの高さ変更
-
ボタンクリック後パネルを再描...
-
ArrayListの使い方について(初...
-
JavaでのSwingを使った簡易電卓...
-
連番をオブジェクト名の最後に...
-
あるコンボボックスを選択する...
-
Buttonを押すと画像が表示され...
-
KeyListenerの使い方について
おすすめ情報