我有一个状态管理器,用于一个包含状态堆栈的游戏。现在,在我的一个状态("Menu")中,我在一个JButtons中有两个JPanel ( JPanel被添加到显示所有内容的主JPanel中)。当我单击JButton "Play“时,我从堆栈中删除了菜单状态。然而,JButtons仍然停留在屏幕上(即使当我偷看()时,我看到菜单已经从堆栈中删除)。
我不想从State中删除按钮,因为我希望能够返回到Menu并在那里再次看到我的按钮。如何将按钮与状态一起移除?
发布于 2012-08-06 12:15:00
您是否考虑过使用CardLayout
CardLayout对象是容器的布局管理器。它将容器中的每个组件视为一张卡片。一次只有一张卡片可见,容器就像一堆卡片。首次显示容器时,添加到CardLayout对象的第一个组件是可见组件。
发布于 2012-08-06 12:50:02
假设每个状态对应于单个JComponent,则可以使用.setVisible(false);方法在删除状态时隐藏该项。
在这种情况下,当您初始化主组件时,您需要确保所有组件都已添加-然后当您添加/删除状态时,您只需切换可见性。
https://stackoverflow.com/questions/11822479
复制相似问题