2011-06-14 59 views
1
JFrame myframe = new JFrame("My Sample Frame"); 
    JButton mybutton = new JButton("Okay"); 

有人可以向我解释这些部分。JFrame ActionListener

mybutton.addActionListener(new ActionListener(){ 

    public void actionPerformed(ActionEvent evt){ 

    //Assuming that the content here will do something. 

    } 
+2

访问(http://stackoverflow.com/questions/5335161/how-does-this-method-work) – 2011-06-14 14:33:33

回答

4

您应该阅读本教程约writing Event Listeners

+0

+1,虽然你并没有真正 “解释”任何事情......你只是把OP引到其他地方。 – mre 2011-06-14 13:39:19

4

你究竟对代码不了解?

该代码将一个动作侦听器添加到该按钮。动作侦听器的actionPerformed方法将在单击按钮时调用。

请注意,这里使用的是anonymous inner class

+0

嗨,谢谢你Jesper。 我不习惯匿名内部类,事实上我只是现在就知道它。 。谢谢你,还有更多的权力。最后一个问题是这些练习的好坏,我的意思是我设置事件监听器的方式。 – kebyang 2011-06-14 13:46:26

+1

这并不是不好的做法,事实上,设置事件处理程序通常是使用匿名内部类来完成的,就像您所展示的示例一样。 – Jesper 2011-06-14 14:36:39

2

为了让按钮对事件(例如点击)作出反应,它必须有一个ActionListener

在您发布的代码,你正在创建一个匿名类实现ActionListener

public void mySetupFunction(){ 

    mybutton.addActionListener(new ActionListener(){ 

    public void actionPerformed(ActionEvent evt){ 
     //Do something when the button is clicked 
    }); 
} 

是一样的做:

public void mySetupFunction(){ 

    mybutton.addActionListener(new MyEventHandler()); 
} 

有:

public class MyEventHandler implements ActionListener{ 
    public void actionPerformed(ActionEvent evt){ 
     //Do something when the button is clicked 
    } 
} 
4

匿名内部类在这里使用。

您在技术上实现了ActionListener。当你打电话addActionListener方法:

mybutton.addActionListener(new ActionListener(){ 

public void actionPerformed(ActionEvent evt){ 

    //Assuming that the content here will do something. 

} 

您创建了一个匿名类,或实现ActionListener的没有名字的类的实例。

出于同样请访问 this link .