【发布时间】:2014-03-26 18:54:33
【问题描述】:
Java 中的 GUI 新手,我正在尝试使用 GroupLayouts 来布局图形组件,我做错了,但不知道是什么。我找不到导致此错误的原因。迫切需要帮助。
线程“main”中的异常线程“AWT-EventQueue-0”中的异常java.lang.IllegalStateException:
at javax.swing.GroupLayout.checkComponents(Unknown Source)
at javax.swing.GroupLayout.prepare(Unknown Source)
at javax.swing.GroupLayout.layoutContainer(Unknown Source)
at java.awt.Container.layout(Unknown Source)
at java.awt.Container.doLayout(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validate(Unknown Source)
at java.awt.Container.validateUnconditionally(Unknown Source)
at java.awt.Window.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at AlignTest.main(AlignTest.java:12)
java.lang.IllegalStateException:
这是代码:
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;enter code here
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class AlignFrame extends JFrame {
private JTextField xTField;
private JTextField yTField;
private JLabel xLabel;
private JLabel yLabel;
private JCheckBox sToGr;
private JCheckBox showGrid;
private JButton okButton;
private JButton cancelButton;
private JButton helpButton;
public AlignFrame()
{
super("Align");
GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
xLabel = new JLabel("X: ");
yLabel = new JLabel("Y: ");
xTField = new JTextField("");
yTField = new JTextField("");
sToGr= new JCheckBox("Snap to Grid");
showGrid = new JCheckBox("Show Grid");
okButton = new JButton("OK");
cancelButton = new JButton("Cancel");
helpButton = new JButton("Help");
layout.setAutoCreateContainerGaps(true);
layout.setAutoCreateGaps(true);
layout.setHorizontalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(sToGr)
.addComponent(showGrid)
)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(xLabel)
.addComponent(yLabel))
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(xTField)
.addComponent(yTField))
)
)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(okButton)
.addComponent(cancelButton)
.addComponent(helpButton))
);
layout.setVerticalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(sToGr)
.addComponent(showGrid)
)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(xLabel)
.addComponent(yLabel))
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(okButton)
.addComponent(cancelButton)
.addComponent(helpButton))
);
}
}
####################################################################
############### AlignTest class that contains main #################
####################################################################
import javax.swing.JFrame;
public class AlignTest {
public static void main(String [] args)
{
AlignFrame test = new AlignFrame();
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
test.setSize(500, 500);
test.setVisible(true);
}
}
【问题讨论】:
标签: java user-interface illegalstateexception