Java 如何将jpanel添加到GridLayout的特定单元格

Java 如何将jpanel添加到GridLayout的特定单元格,java,swing,jpanel,layout-manager,grid-layout,Java,Swing,Jpanel,Layout Manager,Grid Layout,在下面的代码中,我创建了一个包含3行3列的GridLayout,我要做的是,将jpanel_1添加到 Gridlayout的特定单元格,比如网格单元格编号(2,3) 代码: private void setUpGUI2() { // TODO Auto-generated method stub jFrame_2 = new JFrame("Border Demo"); GridLayout gridLayOut = new GridLayout(3,3); jF

在下面的代码中,我创建了一个包含3行3列的GridLayout,我要做的是,将jpanel_1添加到 Gridlayout的特定单元格,比如网格单元格编号(2,3)

代码

private void setUpGUI2() {
    // TODO Auto-generated method stub
    jFrame_2 = new JFrame("Border Demo");
    GridLayout gridLayOut = new GridLayout(3,3);
    jFrame_2.setLayout(gridLayOut);

    jPanel_1 = new JPanel(new BorderLayout());
    jPanel_2 = new JPanel(new BorderLayout());

    jPanel_1.setBorder(BorderFactory.createTitledBorder("title"));
    //jPanel_1.setBounds(30, 100, 110, 300);
    jPanel_1.add(jLabel_Hello, BorderLayout.EAST);

    jPanel_2.setBorder(BorderFactory.createLoweredBevelBorder());
    //jPanel_2.setBounds(20, 50, 120, 80);
    jPanel_2.add(jLabel_Hello, BorderLayout.SOUTH);

    //jFrame_2.setBounds(0, 0, 600, 600);
    jFrame_2.add(jPanel_1);//how to add jpanel_1 to a specific cell of Gridlayout defined above
    //jPanel_1.add(jPanel_2);
    jFrame_2.add(jPanel_2);
    jFrame_2.pack();
    jFrame_2.setVisible(true);
}

我认为没有机会。你需要一个接一个地添加它们。
frame.add(…);框架。添加(…)
我不清楚您想要的结果是什么,但是使用只有两个面板的
GridLayout(3,3)
与使用
GridLayout(0,2)


另外,请查看GridBagLayout-它可能对您更有用。

根据您的需要,您可以在不想使用的单元格中添加“虚拟”组件(如JLabel)。如果我没记错的话,GridLayout将按列/行顺序进行布局


因此,如果您想在第二行的第二列中添加一个组件,则必须在第一行中添加四个JLabel,并填充布局

调用setBounds是一种无用的方法。为了更快地获得更好的帮助,请发布一个(最小完整的可验证示例)或(简短、自包含、正确的示例)。此外,请更准确地描述保留单元格空白的目的。例如,这是一个在整个游戏过程中单元格内容可能发生变化的游戏(如国际象棋或双陆棋)?这是一个只需要一些填充物的设计吗。。有(机会),但你需要有创造力吗?另一个问题是,如果op“期望”其他单元格显示为“虚拟”,那么间距是相同的,那么即使是好的旧GridBagLayout也不会work@MadProgrammer你的意思是smth,比如
add(newcomponent())
?是的,但是默认情况下我会使用JLabel作为它的透明对象;)