2014-09-27 46 views
-5

所以在我的應用我使用的代碼:什麼是e.getSource == t?

if(e.getSource()==btnGo){ 
    t = new Timer(1000, this); 
    showMessage(); 
    t.start(); 
} 

if(e.getSource()==t){ 
    clearMessage(); 
    t.stop(); 
} 

它刪除之前顯示第二的消息,我只是想知道正在在(e.getSource==t)

編輯觸發什麼事件 - 增加括號。

+2

這不是真正的Java代碼。 'clearMessage;'可能是一個方法調用,對吧?所以它應該有'()'等 – aioobe 2014-09-27 19:33:30

+0

這是不言而喻的:'e.getSource()'如果由它觸發的事件返回'Timer t'-所以如果你在'if'-上面的聲明 – msrd0 2014-09-27 19:33:39

+0

@aioobe和'showMessage'也應該有一個'()' – msrd0 2014-09-27 19:34:12

回答

0

首先:我假設「e」是您正在處理的事件。

您的代碼檢查哪個對象觸發事件並作出相應反應。如果事件是由btnGo觸發的,它將創建消息並創建一個新的定時器t,它也會啓動。定時器將在指定時間後觸發事件。因此,在1秒鐘過後,將再次調用該方法,併發生不同的事件e。這一次,它的源是計時器,從而清除第二塊中指定的消息。