我知道在课程开始时你可以写implements ActionListener
,然后你必须创建public void actionPerformed(ActionEvent e)
才能使它可行。是否可以使用mouseListener执行相同的操作?如果是这样,您需要采用什么方法来代替actionPerformed
?
编辑:这是我的班级声明:
public class Basic_Book extends JFrame implements ActionListener implements MouseListener
这是我旁边显示的错误消息:
可序列化类Basic_Book不声明类型的静态最终serialVersionUID字段 长
令牌“implements”上的语法错误,。预期
答案 0 :(得分:6)
如果查看javadocs .. MouseListener
附带了许多方法。
在其他方面没有实现所有内容,您可以使用MouseAdapter
实现MouseListener
和其他接口,但已经提供了存根方法。
mouseClicked
,mouseEntered
等。
编辑后:
class Basic_Book extends JFrame implements ActionListener,MouseListener
使用逗号分隔接口。
ActionListener
只有actionPerformed
所以你必须只为ActionListener实现,
MouseListener
有4个或更多,你需要实现ALL。或者使用MouseAdapter
并覆盖必要的方法。
对于serialVersionUID
,让Eclipse为您做到这一点。在错误上尝试ctrl + space来调用Eclipse的intellisense,它会给你一些选择。选择显示生成serialVersionUID
,
我不记得它是如何实际完成的(但它应该有效!手指交叉)。
答案 1 :(得分:2)
Official Java API Documentation是任何Java程序员必不可少的工具。特别是,请查看the docs for MouseListener以了解您需要实施哪些方法。
您也可以简单地添加implements MouseListener
并尝试编译您的课程。编译器会快速告诉您需要实现的方法。如果您使用的是Eclipse,NetBeans或IntelliJ等IDE,则甚至无需编译代码。每个IDE都有自己的方式告诉您需要哪些方法,甚至为您生成方法体。我强烈建议您熟悉一个好的IDE。它将为您节省大量编写代码的时间。
答案 2 :(得分:2)
像ActionListener
和MouseListener
是一个界面,这意味着,是的,你可以用同样的方式实现。
MouseListener
定义了必须实现的五种方法。
mouseClicked(MouseEvent e)
mouseEntered(MouseEvent e)
mouseExited(MouseEvent e)
mousePressed(MouseEvent e)
mouseReleased(MouseEvent e)
答案 3 :(得分:0)
实际上编译器应该告诉你答案,但应该像mouseLeave,mouseEnter,mouseHover,mousePressed