我正在学习Java,并且非常希望能够更深入地了解ActionEvent e perameter的含义和意义。当我编码时,我不只是想吐出有效的线条,但我不明白。在使用它们之前,我希望对概念有充分的理解。
那么具体要求是什么以及这两个部分(ActionEvent和e)是什么意思?
class ButtonListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e){
}
}
感谢。
答案 0 :(得分:4)
ActionEvent
是一个类,e
是该类的一个实例。您可以使用e来调用它的方法/属性,可在此处找到
http://docs.oracle.com/javase/7/docs/api/java/awt/event/ActionEvent.html
ActionEvent
只是一种类型,它会通知您对象e
的类型。顺便说一下,您可以将e
更改为您喜欢的任何内容,例如。 event
或object
。
ActionEvent event
,ActionEvent object
(请记住,不要与Object
混淆,其对象为小写“o”),ActionEvent anyVariableName
等......
然后在actionPerformed()
内,您可以调用event.doSomething();
答案 1 :(得分:0)
ActionEvent
是听众捕获的“事件”,由调度员发送。这意味着,以外行人的话来说,某个地方的某个线程已经决定你的行为(即点击按钮等)导致了一个动作发生,并通知系统。你的听众会接受这个,并将参考作为参数e
。 This可能有助于更清楚地了解行动的内容/原因;并且,查看事件调度线程(EDT)可能是有益的。
答案 2 :(得分:0)
这可以帮到你: http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html
基本上,ButtonListener是您的ActionListener实现。 您将像
一样使用它someButton1.addActionListener(new ButtonListener());
someButton2.addActionListener(new ButtonListener());
它会监听按钮上的任何动作事件&some; someButton1'和' someButton2'。但我们可能希望以不同的方式处理两个按钮的点击。那是什么时候使用ActionEvent。
在Inside方法中,我们可以通过以下方式执行此操作
@Override
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("Button 1")){
//Process Button 1 action event here
}
else if(e.getActionCommand().equals("Button 2")){
//Process Button 2 action event here
}
}