我真的在这里傻眼了(或者只是“哑巴”)。我正在使用JRE系统库(JVM内容(MacOS X默认),Hibernate 3.0和Eclipse Helios中的MigLayout)在我相对较新的Mac上构建一个简单的Java Swing应用程序。事情进展顺利,直到我开始看到以下错误消息这可以防止GUI甚至呈现。
2011-02-12 09:40:27.842 java[809:903] [Java CocoaComponent compatibility mode]: Enabled
2011-02-12 09:40:27.843 java[809:903] [Java CocoaComponent compatibility mode]: Setting timeout for SWT to 0.100000
2011-02-12 09:41:08.355 java[809:903] *** __NSAutoreleaseNoPool(): Object 0x1001575c0 of class NSConcreteMapTableValueEnumerator autoreleased with no pool in place - just leaking
当我使用这个简单的代码实例化JButton时,抛出前两行:
private JButton button = new JButton();
在Main()中调用我的Controller构造函数结束时抛出最后一行。
public static void main(String[] args) {
// Creates a model of the system logic.
LeapsAndBoundsModel model = new LeapsAndBoundsModel();
// Creaties a view for the system logic.
LeapsAndBoundsView leapsAndBoundsView = new LeapsAndBoundsView();
// Creates a controller that links the two.
LeapsAndBoundsController controller = new LeapsAndBoundsController(model, leapsAndBoundsView);
}
我已经用Google搜索了这个问题并发现很多人遇到了同样的问题,但几乎所有人都使用CocoaComponent for iPhone应用程序进行编码。这是一个简单的GUI,它使用Hibernate将信息保存到本地化的Derby数据库。
我已经尝试了以下建议而没有成功:
//Set the CocoaComponent CompatibilityMode to "False"
System.setProperty( "com.apple.eawt.CocoaComponent.CompatibilityMode", "false" );
// Use the "invokeLater" method within Main() construct
SwingUtilities.invokeLater( new Runnable() {
public void run() {
doIt();
}
});
非常感谢任何帮助。
答案 0 :(得分:0)
我不确定,你是否在Eclipse中显示了Swing? 因为这些错误通常是SWT中的错误(由Eclipse使用)。比较错误: https://bugs.eclipse.org/bugs/show_bug.cgi?id=211361和 https://bugs.eclipse.org/bugs/show_bug.cgi?id=106619
您可以尝试升级eclipse,或检查用于启动Eclipse的参数。