我在這裏真的很傻(或者只是「愚蠢」)。我在我的相對較新的Mac上使用JRE系統庫(JVM內容(MacOS X默認),Hibernate 3.0和MigLayout在Eclipse Helios中構建了一個簡單的Java Swing應用程序。事情進展順利,直到我開始看到以下錯誤消息防止在GUI從甚至渲染__NSAutoreleaseNoPool在SWING應用程序中拋出
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()中的構造函數。
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);
}
我谷歌搜索了這個問題,發現很多人都有同樣的問題,但幾乎所有人都使用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();
}
});
任何幫助將不勝感激。
您可以發佈一個完整的自包含代碼示例,生成此錯誤?只需一個具有創建JFrame的主方法的類,並添加JButton和生成錯誤消息所需的其他任何東西。這將使我們更容易找到並解決問題。 – 2011-02-13 12:03:35