Java 将多个JPanel添加到JFrame
好的,现在我有一个JFrame,它包含一个JLayeredPane。所以现在它运行一个游戏GUI。我想在这个框架的侧面添加按钮,这样我就可以通过按钮接收用户的输入。 有什么想法吗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
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在那里的原因。。。