我有这个创建网格的类:
class GridPane extends JPanel{
public GridPane(int row,int col){
setLayout(new GridLayout(row,col));
setBorder(BorderFactory.createEmptyBorder(1,1,1,1));
for (int i =1; i<=(row*col); i++)
{
JPanel pan = new JPanel();
pan.setBackground(Color.RED);
pan.setPreferredSize(new Dimension(3,3));
pan.setBorder(BorderFactory.createLineBorder(Color.BLACK));
add(pan);
}
}
这使用组布局设置了空的主框架:
public MainFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
GroupLayout gl_contentPane = new GroupLayout(contentPane);
gl_contentPane.setHorizontalGroup(
gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGap(0, 440, Short.MAX_VALUE)
);
gl_contentPane.setVerticalGroup(
gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGap(0, 268, Short.MAX_VALUE)
);
contentPane.setLayout(gl_contentPane);
}
我对 SWING 不是很有经验,一段时间以来我一直在尝试将 GridPane 对象添加到主框架的右侧。它不断告诉我类似的信息:
java.lang.IllegalStateException: GridPane[,0,0,0x0,invalid,layout=java.awt.GridLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@6ba7508a,flags=9,maximumSize =,minimumSize=,preferredSize=] 未附加到垂直/水平组
有谁知道发生了什么?我应该怎么做才能完成我所需要的?很抱歉发布了很多代码。谢谢您的帮助。