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 called...”。但在 Mac 上它没有显示该消息。

4

0 回答 0