好吧,现在我有一个包含JLayeredPane的JFrame。所以现在运行游戏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的代码的一部分。
答案 0 :(得分:4)
1)不要使用JLayeredPane,因为最多有6.层限制,请使用基于JXLayer
的{{3}}(Java6)
2)使用JLayer (Java7)约为setSize
/ setBounds
,对于可撤销Container
而言并不舒适
3)使用JLayeredPane代替CardLayout,
4)或使用JLayeredPane
答案 1 :(得分:1)
如果你想在游戏中使用按钮,你可以使用BorderLayout并将按钮放在布局的东/西,并将LayeredPane添加到中心。如果按钮需要与游戏屏幕重叠,您可以使用layeredPaneObj.add(buttonPanel,new Integer(0))
这将使面板保持在最顶层。
答案 2 :(得分:1)
您应首先了解layout managers的基本内容。 如前所述,请根据您的要求特别关注BorderLayout