The first difference is that A MouseEvent is a true system event, while an ActionEvent is a synthesized event ... It is triggered by a system event.
MouseListener (and MouseMotionLister, MouseWheelListener) are useful when (a) you are interested in the details of an event (i.e. the location of the x / y click) or when the component you are using does not support ActionListeners
Action good when you have a task that can be performed without external events (for example, exiting a program) and that you want to have access to more than one component or to start / run using the keyboard or mouse
source share