如何删除覆盖的 mouseListener?

How do I remove an overidden mouseListener?

我有一个 JInternalFrame,当我的 JTable 被双击时,我想在其中显示一个 JOptionPane。我在互联网上环顾四周,发现唯一的方法是覆盖 mousePressed() 方法,我就是这样做的:

tblJobs.addMouseListener (new MouseAdapter() {
    @Override
    public void mousePressed (MouseEvent e) {
        JTable tbl = (JTable)e.getSource();
        int row = tbl.rowAtPoint(e.getPoint());

        if (e.getButton() == MouseEvent.BUTTON1 && row != -1) {
            if (e.getClickCount() == 2) {
                JOptionPane.showMessageDialog(null, "Double click detected");
            }
        }
    }
});

问题是,我还有一个隐藏框架的按钮,当框架被隐藏并重新显示时,我发现在双击我的 JTable 时,JOptionPane 显示了两次。 JOptionPane 显示的次数似乎随着我隐藏和显示框架的次数而增加。我的猜测是,当我隐藏并重新显示我的框架时,mouseListener 被一次又一次地调用。有没有办法删除以这种方式添加的 mouseListener?还是有另一种方法可以阻止 JOptionPane 多次显示?而且,如果我的代码有任何愚蠢之处,请随时告诉我! :) 提前致谢!

隐藏时设置布尔类变量hidden = true,取消隐藏时设置hidden = false如何?
mousePressed() 中的第一行设置为 if(hidden) return;