2014-09-27 102 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。这一次,它的源是计时器,从而清除第二块中指定的消息。