您可以为侦听器使用一个通用的基类,并且在其中有一个静态方法来打开或关闭侦听器:
public abstract class baseMouseListener implements ActionListener{ private static boolean active = true; public static void setActive(boolean active){ baseMouseListener.active = active; } protected abstract void doPerformAction(ActionEvent e); @Override public final void actionPerformed(ActionEvent e){ if(active){ doPerformAction(e); } }}您的听众将不得不实现
doPerformAction()而不是
actionPerformed()。
(这在企业场景中会很糟糕,但是在像Swing这样的单VM模型中,它应该可以正常工作)



