MouseListener
- это низкоуровневый слушатель событий в Swing (и, кстати, AWT).
ActionListener
- это более высокий уровень, и его следует использовать.
Лучше, чем ActionListener
хотя, следует использовать javax.swing.Action
(что на самом деле ActionListener
).
Использование Action
позволяет разделить его между несколькими виджетами (например, JButton
, JMenuItem
...);вы не только делитесь кодом, который запускается при нажатии кнопки / меню, но и общим состоянием, в частности тем, включено ли действие (и связанные с ним виджеты) или нет.