如何在网格布局中重叠组件?

Posted

技术标签:

【中文标题】如何在网格布局中重叠组件?【英文标题】:How do you overlap components in the grid layout? 【发布时间】:2016-04-17 16:17:39 【问题描述】:

对于我的高级项目,我正在用 Java 编写游戏。它有一个正方形网格,您需要导航才能完成目标。我发现网格布局可以满足我的需要,只是我似乎无法让主角重叠(在上面)关卡上的空间。我基本上希望能够将“开始”图标与“空”等任何其他图标重叠。我还没有找到这样做的好方法(当然我是新手)。我想知道如何做到这一点,或者即使我不能。如果我做不到,请留下一个链接,以展示我可以实现目标的方法。

以下是与设置关卡相关的代码片段。当我尝试将主角添加到网格上的指定区域时,它只会将所有内容推高 1。

public loadWindow() throws IOException 

    try
        level = new FileReader("levels/debug1.txt");

        while ((type = level.read()) != -1)
                if (type == 'a')
                    icon = start;
                if (type == 'b')
                    icon = empty;

                //Includes the rest of the if statemets

                if (type == 'x')
                    test = false;


                if (test == true)
                    JLabel spot = new JLabel(new ImageIcon(icon));
                    add(spot);
            

         finally 
            if (level != null)
                level.close();
        
    

【问题讨论】:

威廉,你说的重叠是什么意思? 【参考方案1】:

使用JLayeredPane 可以在JLayeredPane 的不同层(Default、Palette、Modal、PopUp、Drag)添加各种组件,如JButton、JPanel 等。

要将 JButton 添加到“默认层”,请使用:jlayeredpane.add(jbutton, JLayeredPane.DEFAULT_LAYER);

【讨论】:

这是一个很大的帮助。谢谢!

以上是关于如何在网格布局中重叠组件?的主要内容,如果未能解决你的问题,请参考以下文章

网格布局与侧边栏重叠

Tailwind Flexbox 网格布局

如何在 Unity 中拥有具有不同单元格高度的网格布局组件

Swing 布局 - 在保持组件尺寸的同时使用网格

GridLayout(网格布局)

2.2.5 GridLayout(网格布局)