我正在自学 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
(在下面注释掉)时,我收到一个错误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);
}
}