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