java - Java中MouseListener和MouseAdapter的区别

标签 java mouselistener

我似乎无法理解这两个界面之间的区别。为什么MouseAdapter不能像MouseListener一样实现而只能扩展?我对 Java 还很陌生。

考虑到我们想要执行一个可以使用这两个接口(interface)其中一个来完成的操作。

此外,什么时候使用其中一个比较明智,什么时候使用另一个比较明智?

最佳答案

I can't seem to understand the difference between the 2 interfaces. Why can't MouseAdapter be implemented like MouseListener and can only be extended

MouseAdapter实现MouseListener

鼠标适配器:

An abstract adapter class for receiving mouse events. The methods in this class are empty. This class exists as convenience for creating listener objects. Extend this class to create a MouseEvent (including drag and motion events) or/and MouseWheelEvent listener and override the methods for the events of interest

在没有 MouseAdapter 的情况下,如果您实现 MouseListener,则必须为所有这些接口(interface)方法提供实现。

mouseClicked(MouseEvent e)
mouseDragged(MouseEvent e)
mouseEntered(MouseEvent e)
mouseExited(MouseEvent e)
mouseMoved(MouseEvent e)
mousePressed(MouseEvent e)
mouseReleased(MouseEvent e)
mouseWheelMoved(MouseWheelEvent e)

when would it be wise to use the one and when the other ?

如果你想实现以上8个方法,请实现MouseListener。如果您只想为这 8 个方法中的某些方法提供实现,请使用 MouseAdapter 并仅重写您感兴趣的那些方法。

例如如果您只对实现一个事件(或几个事件)感兴趣,例如 mouseClicked(MouseEvent e) 事件,最好使用 MouseAdapter。如果在这种情况下实现 MouseListener 接口(interface),则必须为其他方法提供空白实现,而您不会实现这些方法。

关于java - Java中MouseListener和MouseAdapter的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44268617/

相关文章:

java - 如何正确对齐标签?

java - 具有依赖项的可执行 Jar

java - 最初隐藏的单选按钮在事件中不可见

java - 如何在鼠标单击 JTextField 时清除 JTextField

java - 如何使用 MouseListener 查找网格中的特定单元格

java - 将 getter/setter 作为方法引用传递

java - 如何调节日志指令随时间产生的打印输出量?

java - 如何确保在开始返回 bean 之前将资源注入(inject)到我的配置中?

java - 我怎样才能只用一个事件来收听我的所有组件?

java - 在 Jlabel 上实现简单的悬停效果