看板java
标 题Re: 想不通
发信站无名小站 (Sun Feb 18 22:25:18 2007)
转信站ptt!ctu-reader!ctu-peer!news.nctu!netnews.csie.nctu!wretch
※ 引述《[email protected] (夏杰)》之铭言:
> 有一个问题我一直想不通
> 假如有两个类别~~同样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海