JPopupMenu
アイテムが選択された、メニューが閉じられた、またはsetVisible(false)
呼び出されたなどの理由で、アイテムが非表示になったときに通知を受け取りたいです。ここに私のテストコードがあります:
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"); }
}
メニューの操作方法に関係なく、2 つのComponentListener
メソッドはどちらも呼び出されません。何故ですか?私JPopupMenu
がいつ隠されているかを知る別の/より良い/正しい方法はありますか?
ありがとう、
キャメロン