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

时间:2016-01-12 21:22:04

标签: java components jlabel grid-layout

对于我的高级项目,我正在使用Java编写游戏。它有一个正方形网格,您需要导航才能完成目标。我发现网格布局做了我需要的东西,除了我似乎无法使主要角色重叠(在顶部)上的空间。我基本上希望能够重叠图标' start'与任何其他图标,如“空”'。我还没有找到一个很好的方法来做到这一点(我认为这是新手)。我想知道这样做的方法,或者即使我不能。如果我不能这样做,我会要求您留下一个链接,以展示我可以实现目标的方式。

以下是与设置级别相关的代码中的一个小剪辑。当我尝试将主角添加到网格上的指定区域时,它只是将所有内容都推到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 个答案:

答案 0 :(得分:0)

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

要将JButton添加到'默认图层',请使用:private void btnChooseColorActionPerformed(java.awt.event.ActionEvent evt) { Color color = JColorChooser.showDialog(getContentPane(), "Choose color", Color.yellow); this.getContentPane().setBackground(color); lblColorSelected.setText("Color: " + /* here I would like to append code that will display name of the color what user have selected */); }