2

私と私の友人は、3つの画面(Player1HandScreen、Player2HandScreen、FightScreen)の間を循環するカードゲームに取り組むことにしました。

Player1がからカードを選択すると、Player2が同じことを行う場所Player1HandScreenPlayer1HandScreenつながります。Player2HandScreen次に、2枚のカードが比較され、1人のプレーヤーがそのラウンドの勝者として宣言されますPlayer2HandScreenFightScreen

私たちが抱えている問題は、ラウンドが終了したらクリアPlayer1HandScreenしたいだけでなく、Player2HandScreenパラメータを更新したらGUIを正常に更新できないことです。

を使用しようとしましたが、またはremoveAll()に到達できません。repaint()validate()

私たちも調査しましsuper.paintComponents(g)updateUI()が、どちらも私たちに押しつぶされた希望と夢を残しました。

4

2 に答える 2

4

JComponent を Container から (最後に 1 回だけ) 削除する場合は、Container に通知する必要があります。

removeAll()//or remove(JComponent)
revalidate();
repaint();
于 2011-06-07T05:51:46.370 に答える
0

次を使用して Jpanel をクリアしてみてください。

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

paper は次のようなものです。Graphics paper = panel.getGraphics();

于 2016-08-30T13:42:41.590 に答える