不是重复的问题……但我的回答应该对您的问题有所帮助。
简短的总结,我的偏好是让 JFrame 类不实现 ActionListener,然后让一些命名的内部类与 JFrame 一起实现 ActionListener。
我会把 main 放在一个单独的类中......并称它为 Main。
这是我喜欢这样做的一些示例代码:
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class Main
{
    private Main()
    {
    }
    public static void main(String[] args)
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                createAndShowGUI();
            }
        });
    }
    private static void createAndShowGUI()
    {
        final FooFrame frame;
        frame = new FooFrame();
        frame.setupGUI();
        frame.pack();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}
然后是图形用户界面:
import java.awt.FlowLayout;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class FooFrame
    extends JFrame
{
    private final JButton incrementBtn;
    private final JButton decrementBtn;
    private int value;
    {
        incrementBtn = new JButton("++");
        decrementBtn = new JButton("--");
    }
    private class IncrementListener
        implements ActionListener
    {
        public void actionPerformed(final ActionEvent evt)
        {
            increment();
        }
    }
    private class DecrementListener
        implements ActionListener
    {
        public void actionPerformed(final ActionEvent evt)
        {
            decrement();
        }
    }
    public void setupGUI()
    {
        final LayoutManager layout;
        layout = new FlowLayout();
        setLayout(layout);
        setupListeners();
        addComponents();
    }
    private void setupListeners()
    {
        incrementBtn.addActionListener(new IncrementListener());
        decrementBtn.addActionListener(new DecrementListener());
    }
    private void addComponents()
    {
        add(incrementBtn);
        add(decrementBtn);
    }
    private void increment()
    {
        value++;
        System.out.println("value = " + value);
    }
    private void decrement()
    {
        value--;
        System.out.println("value = " + value);
    }
}