事件源就是按钮.
那为什么
e.getSource();
要强制转化一下呢??

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【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  %                  
    值得尊敬
      

  2.   

    e.getSource()返回的是个Object对象啊,呵呵。
      

  3.   

    因为ActionEvent没有类似于e.getSource()的方法
    而getSource()方法,是EventObject中的方法。
    所以getSource()要返回大范围的Object对象。
    而程序中,要进行具体哪个按钮被点击的判断,
    肯定是需要转换为具体程序中已存在变量的类型,也就是button.
      

  4.   


    事件源可以是任何组件(或对象),所以返回值得声明成 Object。使用时要:Object event = e.getSource();
    if (event instanceof ActionEvent) {
        ActionEvent ae = (ActionEvent) event;
        ...
    }
    ...
      

  5.   

    事件源可能是任何的JAVA类型,要想系统支持这些类型,只能返回OBJECT类型,这样才能满足需求.
      

  6.   

    所以需要强制转换类型,达到你的按钮的类型Button。
      

  7.   

    如果不用转换,那岂不要有千千万万个这样的方法:
    public Button getSource();public JTextBox getSource();public JTextField getSource();public JTable getSource();public JPanel getSource();.......好好想一想吧,就知道为什么了.