javax.swing.PopupFactory
クラスとオーバーライドを拡張しgetPopup()
ました。また、PopupFactory の共有インスタンスとして設定しました。ログを getPopup() メソッドに入れました。
Windows では、getPopup() のログを確認できます。しかし、Mac ではログが表示されません。Mac では、getPopup()
メソッドが呼び出されていないようです。
Macでメソッドが呼び出されない理由を誰か助けてもらえますか? getPopup()
Mac でをオーバーライドするにはどうすればよいですか?
カスタム PopupFactory と、コンボ ボックスをフレームにパックするクラスを次に示します。
public class PopupExample {
public static void main(String args[]) {
PopupFactory.setSharedInstance(new PopupFactory() {
public Popup getPopup(Component owner, Component contents, int x, int y)
throws IllegalArgumentException {
System.out.println("getPopup called...");
return super.getPopup(owner, contents, x, y);
}
});
JFrame f = new JFrame();
f.getContentPane().add(new JComboBox(new String[]{"a","b","c"}));
f.pack();
f.setVisible(true);
}
}
Windows では、コンボボックスをクリックして開くと、コンソールに「getPopup が呼び出されました...」というメッセージが表示されます。しかし、Macではメッセージが表示されませんでした。