将多个JPanel添加到JFrame

时间:2012-04-20 12:09:31

标签: java swing layout jframe

好吧,现在我有一个包含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的代码的一部分。

3 个答案:

答案 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