有人可以解释一下这个java Swing代码吗?

时间:2015-01-09 07:06:08

标签: java swing awt

我最近刚刚在Java中启动了Awt和Swing,并且有一个ActionListener的代码

jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);

现在,我知道的事情 - 我们应该传递类的对象,其构造函数定义了上面的代码。通常,我传递'this',从而将当前类的对象作为争论。

现在上面的代码包含'java.awt.event.ActionListener()'。那是什么意思?总之,有人可以完全解释上面提到的整个代码吗?会是你的一种。我找不到这个确切的问题,那些已经被问到的问题似乎已经理解了我坚持的这个基本概念,所以他们只是对他们的其他复杂疑虑进行了解释。

3 个答案:

答案 0 :(得分:3)

您创建一个新的ActionListener:

new java.awt.event.ActionListener() {
  public void actionPerformed(java.awt.event.ActionEvent evt) {
   jButton1ActionPerformed(evt);
  }
}

并将其添加到按钮:

jButton1.addActionListener(..);

与创建新类实现ActionListener接口并将其添加到按钮相同。

答案 1 :(得分:0)

这只是一个代码,它从包 java.awt.event 创建一个新的动作侦听器 然后为它添加一个动作,但可能是空的。

答案 2 :(得分:0)

您的代码正在创建一个匿名的ActionListener,如果您只需要将它用于jbutton1,这是很好的。如果您需要多个按钮,可以创建监听器类并为其命名,以用于您需要的所有按钮,如下所示:

public class myListener implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent e){
        if( ((JButton) e.getSource()) == jButton1 ) jButton1ActionPerformed(e);
        else if( ((JButton) e.getSource()) == jButton2 ) jButton2ActionPerformed(e);
    }
}//end listener class

为所有按钮添加一个监听器:

jButton1.addActionListener(new myListener());
jButton2.addActionListener(new myListener());

这谈谈了一点:http://www.fredosaurus.com/notes-java/GUI/events/anonymous_listener.html