0

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ではメッセージが表示されませんでした。

4

0 に答える 0