1

我知道在课程开始时您可以编写implements ActionListener,然后您必须创建public void actionPerformed(ActionEvent e)它才能使其可行。是否可以用 mouseListener 做同样的事情?如果是这样,您必须创建什么方法来代替actionPerformed

编辑:这是我的班级声明:

public class Basic_Book extends JFrame implements ActionListener implements MouseListener

这是我旁边显示的错误消息:

  • 可序列化类 Basic_Book 未声明 long 类型的静态最终 serialVersionUID 字段

  • 令牌“实现”的语法错误,. 预期的

4

4 回答 4

6

如果您查看javadocs .. 有一堆方法MouseListener。在其他不实现所有内容的情况下,您可以使用一个MouseAdapterwhich implementsMouseListener和其他接口,但已经提供了存根方法。

mouseClickedmouseEntered。在您编辑之后:

class Basic_Book extends JFrame implements ActionListener,MouseListener

使用逗号分隔接口。 ActionListener只有actionPerformed所以你必须只为 ActionListener 实现, MouseListener有 4 个或更多,你需要实现 ALL。或者使用MouseAdapter并覆盖必要的方法。

对于serialVersionUID,让 Eclipse 为您做这件事。在错误上尝试 ctrl+space 来调用 Eclipse 的智能感知,它会给你一些选项。选择说生成的那个serialVersionUID

我不记得它实际上是如何完成的(但它应该可以工作!手指交叉)。

于 2013-02-12T00:21:49.487 回答
2

官方 Java API 文档是任何 Java 程序员的必备工具。特别是,查看MouseListener 的文档以了解您需要实现哪些方法。

您也可以简单地添加implements MouseListener并尝试编译您的类。编译器会很快告诉你需要实现哪些方法。如果您使用的是 Eclipse、NetBeans 或 IntelliJ 等 IDE,您甚至不需要编译代码。每个 IDE 都有自己的方式告诉您需要哪些方法,甚至为您生成方法体。我强烈建议您熟悉一个好的 IDE。它将为您节省大量编写代码的时间。

于 2013-02-12T00:22:58.757 回答
2

Like ActionListenerandMouseListener是一个接口,这意味着,是的,您可以以相同的方式实现。

MouseListener定义了您必须实现的五种方法。

  • mouseClicked(MouseEvent e)
  • mouseEntered(MouseEvent e)
  • mouseExited(MouseEvent e)
  • mousePressed(MouseEvent e)
  • mouseReleased(MouseEvent e)

您确实应该首先查看Java 文档教程

于 2013-02-12T00:23:43.930 回答
0

实际上编译器应该告诉你答案,但应该是 mouseLeave、mouseEnter、mouseHover、mousePressed

于 2013-02-12T00:22:08.940 回答