我自学了Java的摇摆组件,并遇到了一些概念障碍。我确信我的某些特定术语是错误的,但希望我能够很好地沟通我的困难以获得一两个答案。
我有以下代码,为简洁起见:
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
时(下面已注释),我收到错误ButtonSel is not abstract and does not override abstract method actionPerformed(ActionEvent)
。根据我在javadocs和各种网站上阅读的内容,我收集到的错误是由于尚未在方法中定义了操作。像
public void actionPerformed(ActionEvent clickButton) {
do stuff;
{
但是,我不清楚这种方法需要居住的地方。我认为它与构造函数一起存在于ButtonSel
类中 - 因为那是我定义按钮对象的地方。但是,我也可以将其视为CreateButtonSel
类中的方法,并作为参数传递给ButtonSel
。然后,问题是如何将这些按钮动作特征传递给构造函数?或者它们会自动附加到构造函数创建的按钮对象上,如果它们位于CreateButtonSel
类中吗?
有人可以解释程序流程应该如何工作以及什么时候调用哪种方法?
// 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);
}
}