在Mac上没有调用PopupFactory的getPopup()

时间:2014-06-20 10:37:11

标签: java macos swing jpopup

我已扩展javax.swing.PopupFactory类并覆盖getPopup()。我也设置为PopupFactory的共享实例。我已将日志放入getPopup()方法。

在Windows上,我可以看到getPopup()的日志。但在Mac上日志没有显示。似乎在Mac上,getPopup()方法未被调用。

任何人都可以帮助我为什么不在Mac上调用该方法?如何覆盖Mac上的getPopup()

这是我的自定义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上它没有显示信息。

0 个答案:

没有答案