2011-06-07 93 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();