2010-09-09 65 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