Java 我需要一些指导来理解ActionListener和actionPerformed(ActionEvent)是如何工作的

Java 我需要一些指导来理解ActionListener和actionPerformed(ActionEvent)是如何工作的,java,swing,jbutton,actionlistener,Java,Swing,Jbutton,Actionlistener,我在自学Java的swing组件,遇到了一些概念上的障碍。我确信我对某些特定术语的理解是错误的,但希望我能很好地表达我的困难,从而得到一两个答案 为了简洁起见,我有以下代码: import javax.swing.*; import java.awt.*; import java.awt.event.*; // public class CreateButtonSel { public static void main(String[] args) { ButtonSel

我在自学Java的swing组件,遇到了一些概念上的障碍。我确信我对某些特定术语的理解是错误的,但希望我能很好地表达我的困难,从而得到一两个答案

为了简洁起见,我有以下代码:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
//
public class CreateButtonSel {
    public static void main(String[] args) {
        ButtonSel thisButtonSel = new ButtonSel();
        final int WIDTH = 250;
        final int HEIGHT = 250;
        thisButtonSel.setSize(WIDTH,HEIGHT);
        thisButtonSel.setVisible(true);
    }
}
当我添加
implements ActionListener
(下面注释掉)时,我得到一个错误,
按钮SEL不是抽象的,并且不会覆盖抽象方法actionPerformed(ActionEvent)
。从我在javadocs和各种站点上读到的内容来看,我认为错误是由于没有在方法中定义操作造成的。差不多

public void actionPerformed(ActionEvent clickButton) {
     do stuff;
     {
然而,我不清楚这种方法需要在哪里使用。我猜它存在于带有构造函数的
ButtonSel
类中——因为这就是我定义button对象的地方。但是,我也可以将其视为
CreateButtonSel
类中的一个方法,并将其作为参数传递给
ButtonSel
。然后,问题是这些按钮动作特征是如何或是否传递给构造函数的?或者,如果它们在
CreateButtonSel
类中,它们会自动附加到构造函数创建的button对象吗

有人能解释一下程序流是如何工作的吗?什么时候调用哪个方法

//    public class ButtonSel extends JFrame implements ActionListener {
public class ButtonSel extends JFrame {
    JButton approveButton = new JButton("Go");
    JPanel buttonPanel = new JPanel();
 //
    public ButtonSel() {
        super("ButtonTest");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new FlowLayout());
        add(approveButton);
    }
}
参见示例。您还可以在论坛中搜索其他工作示例