我有扩展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 上它没有显示该消息。