2011-06-07 95 views
2

我和我的朋友决定在3个屏幕之间循环播放卡片游戏(Player1HandScreen,Player2HandScreen和FightScreen)。如何清除/重置JFrame

一旦Player1从Player1HandScreen中选择了他们的卡,Player1HandScreen会导致Player2HandScreen其中Player2执行相同操作。那么Player2HandScreen会导致FightScreen比较两张牌,并且一名玩家被宣布为该轮的赢家。

我们遇到的问题是,一旦轮次结束,我们想要清除Player1HandScreen以及Player2HandScreen一旦刷新我们的参数,我们无法成功更新GUI。

我们已经尝试过使用removeAll(),但是我们无法将其更改为repaint()validate()

我们也调查了super.paintComponents(g)updateUI(),但都给我们留下了沉重的希望和梦想。

回答

5

如果您从容器中的任何JComponent的(S)(仅在结束一次),需要告诉容器的,

removeAll()//or remove(JComponent) 
revalidate(); 
repaint(); 
+0

我仍然得到一个空的屏幕。还有其他建议吗? – breadedchicken 2011-06-07 17:25:16

+0

@breadedchicken真的可以编辑和发布短代码(一个两个JComponets),它可以解决您的问题,其他任何一个都可以拍摄到黑暗中 – mKorbel 2011-06-07 18:07:34

0

尝试使用清除您的JPanel:

paper.clearRect(0, 0, (int)panel.getSize().getWidth(), (int)panel.getSize().getHeight 

纸是这样的:Graphics paper = panel.getGraphics();