0

我有一个包含一堆状态的游戏的状态管理器。现在在我的一种状态(“菜单”)中,我在一个 JPanel 中有两个 JButton(JPanel 被添加到显示所有内容的主 JPanel)。当我单击 JButton“播放”时,我从堆栈中删除了菜单状态。然而,JButtons 留在屏幕上(即使当我 peek() 我看到菜单已从堆栈中删除)。

我不想从状态中删除按钮,因为我希望能够返回菜单并再次看到我的按钮。如何删除按钮以及状态?

4

2 回答 2

3

您是否考虑过使用CardLayout

CardLayout 对象是容器的布局管理器。它将容器中的每个组件都视为一张卡片。一次只能看到一张卡片,并且容器充当一叠卡片。添加到 CardLayout 对象的第一个组件是容器首次显示时的可见组件。

于 2012-08-06T04:15:00.253 回答
2

假设每个状态对应一个JComponent,您可以使用该.setVisible(false);方法在状态被移除时隐藏项目。

在这种情况下,当您初始化主组件时,您需要确保所有组件都已添加 - 然后当您添加/删除状态时,您可以切换可见性。

于 2012-08-06T04:50:01.647 回答