如何清除/重置JFrame

时间:2011-06-07 05:17:11

标签: java jframe validation repaint removeall

我和我的朋友决定开展一个在3个屏幕之间循环的纸牌游戏( Player1HandScreen,Player2HandScreen和FightScreen )。

一旦Player1从Player1HandScreen选择了他们的卡片,Player1HandScreen会导致Player2HandScreen,其中Player2也会这样做。然后Player2HandScreen导致FightScreen比较两张牌并且一名玩家被宣布为该轮的获胜者。

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

我们已尝试使用removeAll(),但我们无法将其转到repaint()validate()

我们也研究过super.paintComponents(g)updateUI(),但两者都给我们留下了希望和梦想。

2 个答案:

答案 0 :(得分:5)

如果你从Container中删除任何JComponent(只有一次),需要告诉Container,

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

答案 1 :(得分:0)

尝试使用以下方式清除Jpanel:

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

纸张类似于:Graphics paper = panel.getGraphics();