※ 引述《vrgigi.bbs@bbs.mgt.ncu.edu.tw (夏傑)》之銘言:
> 有一個問題我一直想不通
> 假如有兩個類別~~同樣implements一個ActionListener
> 我要怎麼用getSource()去辨識是那一個類別產生出的event呢??
> 真的很難~想不通~
關係不大啊! 「類別」只是物件的模子,
而且 getSource 取得的是發出 Event 的物件
只要把他轉型為原來的物件,就能做你想做的事了
或是使用 action command 來辨示
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Frame extends JFrame {
public Frame() {
super("Frame");
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.getContentPane().setLayout(new GridLayout(2, 1));
JButton btn1 = new JButton("btn1");
JButton btn2 = new JButton("btn2");
btn1.setActionCommand("doit");
this.getContentPane().add(btn1);
this.getContentPane().add(btn2);
this.pack();
this.setVisible(true);
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.out.println(arg0);
System.out.println(arg0.getSource());
System.out.println(arg0.getActionCommand());
}
});
btn2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
final JButton b = (JButton) arg0.getSource();
b.setEnabled(false);
}
});
}
public static void main(String[] args) {
new Frame();
}
}
--
夫兵者不祥之器物或惡之故有道者不處君子居則貴左用兵則貴右兵者不祥之器非君子
之器不得已而用之恬淡為上勝而不美而美之者是樂殺人夫樂殺人者則不可得志於天下
矣吉事尚左凶事尚右偏將軍居左上將軍居右言以喪禮處之殺人之眾以哀悲泣之戰勝以
喪禮處之道常無名樸雖小天下莫能臣侯王若能守之萬物將自賓天地相合以降甘露民莫
之令而自均始制有名名亦既有夫亦將知止知止61-224-172-230.dynamic.hinet.net海
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):