title: Why isn't componentHidden called for my JPopupMenu?
body: <p>I want to be notified when my <code>JPopupMenu</code> is hidden — whether because an item was selected, the menu was dismissed, or <code>setVisible(false)</code> was called on it.  Here is my test code:</p>
  
  <pre><code>import javax.swing.*;
  import java.awt.*;
  import java.awt.event.*;
  
  public class A extends ComponentAdapter implements Runnable, ActionListener {
      private JButton b;
  
      public static void main(String[] args) {
          EventQueue.invokeLater(new A());
      }
  
      public void run() {
          JFrame f = new JFrame("Test");
          b = new JButton("Click me");
          b.addActionListener(this);
          f.add(b);
          f.pack();
          f.setVisible(true);
      }
  
      public void actionPerformed(ActionEvent e) {
          JPopupMenu pm = new JPopupMenu();
          pm.addComponentListener(this);
          pm.add("Popup...");
          pm.add("...menu!");
          pm.show(b, 10, 10);
      }
  
      public void componentShown(ComponentEvent e) { System.out.println("componentShown"); }
      public void componentHidden(ComponentEvent e) { System.out.println("componentHidden"); }
  }
  </code></pre>
  
  <p>Regardless of how I interact with the menu, neither of the two <code>ComponentListener</code> methods are being called.  Why is that?  Is there different/better/correct way of finding out when my <code>JPopupMenu</code> is hidden?</p>
  
  <p>Thanks,</p>
  
  <p>Cameron</p>