2010-09-09 96 views
1

今天,我一直在使用jython創建一個使用swing的GUI。我不是專家程序員,所以我決定去使用Netbeans IDE來設計接口,然後調整輸出以便在jython中使用,因爲我對python比Java有更多的經驗。通過代碼的工作後,我設法擺脫所有的語法錯誤,但我仍然留下了讀取錯誤:在Jython中創建基於Swing的GUI

Traceback (most recent call last): 
    File "<path of file>", line 362, in  <module> 
run = InitGUI() 
    File "<path of file>", line 358, in __init__ 
frame.show() 
    at javax.swing.GroupLayout.checkParent(Unknown Source) 

    at javax.swing.GroupLayout.invalidateLayout(Unknown Source) 

    at java.awt.Container.invalidate(Unknown Source) 

    at java.awt.Component.addNotify(Unknown Source) 

    at java.awt.Container.addNotify(Unknown Source) 

    at javax.swing.JComponent.addNotify(Unknown Source) 

    at java.awt.Container.addNotify(Unknown Source) 

    at javax.swing.JComponent.addNotify(Unknown Source) 

    at java.awt.Container.addNotify(Unknown Source) 

    at javax.swing.JComponent.addNotify(Unknown Source) 

    at javax.swing.JRootPane.addNotify(Unknown Source) 

    at java.awt.Container.addNotify(Unknown Source) 

    at java.awt.Window.addNotify(Unknown Source) 

    at java.awt.Frame.addNotify(Unknown Source) 

    at java.awt.Window.show(Unknown Source) 

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 

    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 

    at java.lang.reflect.Method.invoke(Unknown Source) 


java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: GroupLayout can only be used with one Container at a time 

現在,我不知道是什麼原因造成這一點,或者如何/哪裏找去解決它。

完整的源代碼是here.

我真的很感激,如果任何人都可以看看,

感謝

回答

4

你上,我從來沒有見過的JFrame設置佈局。 。(通常一個設置JFrame的子組件的佈局)。

你可以嘗試:

layout = GroupLayout(frame.getContentPane()) 
frame.getContentPane().setLayout(layout) 

this discussion見。

+0

太棒了!像魅力一樣工作。非常感謝:) – 2010-09-09 22:02:29

+1

+1。有趣的是,通過JFrame轉發所有對contentPane的調用變得很難看的情況。 GroupLayout的checkParent方法僅檢查與contentPane!= JFrame失敗的引用相等性,因爲它沒有針對JFrame的特殊處理。 – josefx 2010-09-09 22:13:17