Java 将多个JPanel添加到JFrame

Java 将多个JPanel添加到JFrame,java,swing,layout,jframe,Java,Swing,Layout,Jframe,好的,现在我有一个JFrame,它包含一个JLayeredPane。所以现在它运行一个游戏GUI。我想在这个框架的侧面添加按钮,这样我就可以通过按钮接收用户的输入。 有什么想法吗 class mapGUI extends JFrame{ layeredPane = new JLayeredPane(); mapSize = new Dimension(mapColumn * 16 , mapRow * 16); layeredPane.setPreferredS

好的,现在我有一个JFrame,它包含一个JLayeredPane。所以现在它运行一个游戏GUI。我想在这个框架的侧面添加按钮,这样我就可以通过按钮接收用户的输入。 有什么想法吗

class mapGUI extends JFrame{
        layeredPane = new JLayeredPane();
    mapSize = new Dimension(mapColumn * 16 , mapRow * 16);

    layeredPane.setPreferredSize(mapSize);
    //Adding the layeredPane to the frame.
    getContentPane().add(layeredPane);

    //Adds the appropriate labels to the panels and adds them to the layeredPane.
    addPlayerPos();
    addDungeonItems();
    addDungeonFloor();

    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setResizable(false);
    pack();
    setLocationRelativeTo(null);
    setVisible(true);
}

这是我创建JFrame并向其中添加JLayeredPane的代码部分。

如果你想在整个游戏中使用按钮,你可以使用BorderLayout,将按钮放在布局的东/西,并在中间添加一个LayeredPane。如果按钮需要与游戏屏幕重叠,您可以使用
layeredPaneObj.add(buttonPanel,new Integer(0))
这将使面板保持在顶部。

如果您想在整个游戏中使用按钮,您可以使用边界布局,将按钮放在布局的东/西,并在中间添加一个LayeredPane。如果按钮需要与游戏屏幕重叠,您可以使用layeredPaneObj.add(buttonPanel,new Integer(0))这将使面板保持在顶部。

您应该首先了解有关的基本知识。
如前所述,请根据您的需求特别查看BorderLayout

您应该首先了解有关的基本知识。 如前所述,请针对您的需求特别查看BorderLayout(边界布局)

1)不要使用,因为它最多有6个限制。层,基于
JXLayer
(Java6)使用

2) 使用是关于
setSize
/
setBounds
,这对于可调整大小的
容器来说是不合适的

3) 使用而不是

4) 或者使用,不要使用,因为最多有6个限制。层,基于
JXLayer
(Java6)使用

2) 使用是关于
setSize
/
setBounds
,这对于可调整大小的
容器来说是不合适的

3) 使用而不是


4) 或者使用

抱歉,没有想法,也没有想法,但没有发布演示您的问题。您想在哪里添加按钮以及如何使用按钮?“现在更好吗?”它不是@mKorbel建议的SSCCE!我想把它们添加到右边。我想添加5个按钮。对不起,没有想法,也没有想法,但没有发布演示您的问题。您想在哪里添加按钮以及打算如何使用按钮?“现在更好吗?”这不是@mKorbel建议的SSCCE!我想把它们添加到右边。我想添加5个按钮。@JakubZaverka请阅读问题。“将按钮添加到此框架的侧面”不是框架的顶部。@JakubZaverka请阅读问题。“将按钮添加到此框架的侧面”不是框架顶部。对于。如果我错了,也请纠正我。CardLayout不能一次显示多张卡,因此它不适用于使用多层的游戏。@Nitin Chhajer正确,你是对的,也许我错了(我只对UIManagers黑客使用了JLayeredPane),但我认为很难在游戏中使用JLayeredPane,(请纠正我关于渲染ISSE的任何人)这就是为什么JLayer有…+1的原因。如果我错了,也请纠正我。CardLayout不能一次显示多张卡,因此它不适用于使用多层的游戏。@Nitin Chhajer正确,你是对的,也许我错了(我只对UIManagers黑客使用了JLayeredPane),但我认为很难在游戏中使用JLayeredPane,(请纠正我关于渲染ISSE的任何人)这就是为什么JLayer在那里的原因。。。