0

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

4

3 回答 3

4

1) 不要使用JLayeredPane,因为最多有 6 层限制。使用基于(Java6)的JLayer (Java7 )JXLayer

2) 使用JLayeredPane大约是setSize/ setBounds,这不适合 resizeableContainer

3)使用CardLayout而不是JLayeredPane

4) 或使用JTabbedPane

于 2012-04-20T12:34:57.270 回答
1

您应该首先学习有关布局管理器的基本知识。如前所述,根据您的要求特别查看 BorderLayout

于 2012-04-20T12:25:54.930 回答
1

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

于 2012-04-20T12:18:26.953 回答