如何清除/重置JFrame
我和我的朋友决定开展一个在3个屏幕之间循环的纸牌游戏( Player1HandScreen,Player2HandScreen和FightScreen )。
一旦Player1HandScreen
从Player1HandScreen
选择了他们的卡, Player1HandScreen
Player1HandScreen
导致Player2HandScreen
,其中Player2也会这样做。 然后Player2HandScreen
导致FightScreen
比较两张牌,一名玩家被宣布为该轮的赢家。
我们遇到的问题是,一旦轮次结束,我们想要清除Player1HandScreen
以及Player2HandScreen
一旦刷新我们的参数,我们就无法成功更新GUI。
我们已经尝试使用removeAll()
,但是我们无法将其repaint()
或validate()
。
我们还研究了super.paintComponents(g)
和updateUI()
但两者super.paintComponents(g)
我们带来了希望和梦想。
如果从Container中删除任何JComponent(最后只有一次),需要告诉Container,
removeAll()//or remove(JComponent) revalidate(); repaint();
尝试使用以下方法清除Jpanel:
paper.clearRect(0, 0, (int)panel.getSize().getWidth(), (int)panel.getSize().getHeight
纸张类似于: Graphics paper = panel.getGraphics();