我有一个简单的JPAnel用于tic-tac-toe,画线...... 因此TTT类扩展了JPanel,并在其中保存了一个GameLogic对象。
一切都很好,应用程序是主要添加TTT的JFrame,一切都很好。
但是,当我想重新开始新游戏时, 我在TTT中称之为“重启”,基本上是这样做的:gameLogic = new GameLogic(); &安培;重绘();
现在我的数据数组很干净,它应该只画线..
任何方式Windows都没有改变。
我尝试过一切都没有运气。 有什么建议吗?
GameBoard.java:
public class GameBoard extends javax.swing.JPanel {
private GameBoardLogic GameLogic;
//.....
public void Restart()
{
GameLogic = new GameBoardLogic();
removeAll();
repaint();
}
Main.java:
public class Main {
private static GameBoard TTT;
private static JFrame application;
public static void main(String[] args) {
application = new JFrame("Tic-Tac-Tow");
TTT = new GameBoard();
application.add(TTT);
application.setSize(350, 350);
application.setVisible(true);
//.....
if ( JOptionPane.showConfirmDialog(null, "Do you want to play again?") ==
JOptionPane.YES_OPTION )
{
application.removeAll();
TTT.Restart();
application.add(TTT);
application.validate();
}
答案 0 :(得分:8)
对我来说,总是这样做
panel.removeAll();
//add your elements
revalidate();
repaint();