Button bt=e.getSource(); 不明白 事件源就是按钮.那为什么e.getSource();要强制转化一下呢?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【sure2003】截止到2008-07-23 14:16:17的历史汇总数据(不包括此帖):发帖的总数量:262 发帖的总分数:10883 每贴平均分数:41 回帖的总数量:225 得分贴总数量:7 回帖的得分率:3% 结贴的总数量:256 结贴的总分数:10673 无满意结贴数:2 无满意结贴分:50 未结的帖子数:6 未结的总分数:210 结贴的百分比:97.71 % 结分的百分比:98.07 % 无满意结贴率:0.78 % 无满意结分率:0.47 % 值得尊敬 e.getSource()返回的是个Object对象啊,呵呵。 因为ActionEvent没有类似于e.getSource()的方法而getSource()方法,是EventObject中的方法。所以getSource()要返回大范围的Object对象。而程序中,要进行具体哪个按钮被点击的判断,肯定是需要转换为具体程序中已存在变量的类型,也就是button. 事件源可以是任何组件(或对象),所以返回值得声明成 Object。使用时要:Object event = e.getSource();if (event instanceof ActionEvent) { ActionEvent ae = (ActionEvent) event; ...}... 事件源可能是任何的JAVA类型,要想系统支持这些类型,只能返回OBJECT类型,这样才能满足需求. 所以需要强制转换类型,达到你的按钮的类型Button。 如果不用转换,那岂不要有千千万万个这样的方法:public Button getSource();public JTextBox getSource();public JTextField getSource();public JTable getSource();public JPanel getSource();.......好好想一想吧,就知道为什么了. 日期到十六进制的转换 关于对象序列化的问题 问个正则表达式 一个关于16进制的问题 jbuilder2007中怎样打开UI界面,有么? 如何获取鼠标所在位置的组件? 读文本文件更新数据库表时的奇怪问题! 关于ftp传送文件的一些问题请教。 在类中定义为static型的方法如果会被多个用户(客户端调用)是不是一定要用线程同步关键字 高手的问题? 请问为什么JPanel中drawImage函数画不出图片 JAVA中关于垃圾回收机制的问题
楼主【sure2003】截止到2008-07-23 14:16:17的历史汇总数据(不包括此帖):
发帖的总数量:262 发帖的总分数:10883 每贴平均分数:41
回帖的总数量:225 得分贴总数量:7 回帖的得分率:3%
结贴的总数量:256 结贴的总分数:10673
无满意结贴数:2 无满意结贴分:50
未结的帖子数:6 未结的总分数:210
结贴的百分比:97.71 % 结分的百分比:98.07 %
无满意结贴率:0.78 % 无满意结分率:0.47 %
值得尊敬
而getSource()方法,是EventObject中的方法。
所以getSource()要返回大范围的Object对象。
而程序中,要进行具体哪个按钮被点击的判断,
肯定是需要转换为具体程序中已存在变量的类型,也就是button.
事件源可以是任何组件(或对象),所以返回值得声明成 Object。使用时要:Object event = e.getSource();
if (event instanceof ActionEvent) {
ActionEvent ae = (ActionEvent) event;
...
}
...
public Button getSource();public JTextBox getSource();public JTextField getSource();public JTable getSource();public JPanel getSource();.......好好想一想吧,就知道为什么了.