我在计算机科学课上有一个练习,我正在学习在Java Applets中使用Action侦听器。虽然我有些困惑,但可以提供一些帮助!这是我必须执行的练习:“为三个按钮提供一个按钮处理程序类。构造函数应将对applet的引用和大小的适当整数值作为其参数。将addActionListener调用添加到init方法(即,每个调用都应创建一个专用的新处理程序对象到特定按钮)。编译并运行小程序。”iv创建了一个按钮处理程序类并创建了构造函数(我认为我做对了)。我的主要问题是“将addActionListener调用添加到init方法”部分。这是我创建的ButtonHandler类: class ButtonHandler implements ActionListener { Square theApplet; ButtonHandler(Square app){ theApplet = app; } }之后,我尝试在按钮处理程序必须调用的init方法中添加addActionListener。 butSmall.addActionListener(ButtonHandler());但这给了我错误。任何人都可以解释如何完成此练习?谢谢。 最佳答案 iv创建了一个按钮处理程序类并创建了构造函数(我认为我做对了)。好吧,您没有正确执行操作。该类声明其实现了ActionListener,但实际上并未提供ActionListener.actionPerformed(ActionEvent)的实现。如果它是abstract,可以避免,但事实并非如此。 (如果它是抽象的,那么您将无法实例化它。) 之后我对此表示怀疑。您提供的课程不会编译,因此您在该课程上没有走过那一步。 我试图在init方法中添加一个addActionListener 按钮处理程序必须调用。 butSmall.addActionListener(ButtonHandler()); 但这给了我错误。指定接收到的错误以及错误的来源(在这种情况下,即来自编译器),这对您有好处。如果编译器甚至到达尝试分析该行的地步,则可能会抱怨您尝试调用的ButtonHandler构造函数不存在。您提出的一个构造函数需要一个Square类型的参数,但是您试图调用一个不带参数的构造函数。 任何可以解释如何完成的人 这个练习?如果您试图从init()的Square方法中调用该构造函数,并且希望将引用传递给其Square方法正在执行调用的init(),则可以使用关键字作为参数。同样,在达到这一点之前,您需要修复this。
10-07 23:22