Java Swing中使用GroupLayout出现错误

9

我得到了一长串错误消息,有人能否给我建议在GroupLayout方面我做错了什么。

layout.setHorizontalGroup(
    layout.createSequentialGroup()
        .addComponent(new JLabel("Enter Book Name"))
        .addComponent(new JTextField("TextField", 20))
);

错误:

    在线程“main”中出现异常java.lang.IllegalStateException:
        javax.swing.JTextField[,0,0,0x0,invalid,layout=javax.swing.
            plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,
            alignmentY=0.0,border=javax.swing.plaf.BorderUIResource$
            CompoundBorderUIResource@3d0bbf9e,flags=296,maximumSize=,
            minimumSize=,preferredSize=,caretColor=sun.swing.
            PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax
            .swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true
            ,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,
            bottom=0,right=0],selectedTextColor=sun.swing.
            PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.
            swing.plaf.ColorUIResource[r=184,g=207,b=229],columns=20,
            columnWidth=0,command=,horizontalAlignment=LEADING]
            未附加到垂直组
            在javax.swing.GroupLayout.checkComponents(Unknown Source)处检查组件
            在javax.swing.GroupLayout.prepare(Unknown Source)处准备

注:该错误提示为Java编程语言中的错误提示,是因为JTextField没有附加到垂直组所导致的。

我个人在手动编写GUI时避免使用这种布局。有很多更容易使用的布局可供选择。 - Hovercraft Full Of Eels
我建议使用基于表格的布局作为任何GUI的主要布局。搜索“java表格布局管理器”; 您可以在http://www.softwaremonkey.org/Code/MatrixLayout找到我的。 - Lawrence Dol
重新格式化的代码;已经进行了校对,请在有误的情况下恢复原样。 - trashgod
1个回答

17

使用GroupLayout时,您必须指定水平和垂直布局。每个组件必须在每个组中仅指定一次,否则会导致此错误。

另外,请确保正确地交错每个项目。如果您正在制作网格,请确保两个方向都是平行的序列或反之亦然。如果您只有一排按钮之类的东西,请确保它们在一个方向上是平行的,在另一个方向上是连续的。


谢谢,你真的解决了我的问题...不像@SoftwareMonkey。 - matheusvmbruno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接