在新游戏中清除我的JFrame和JPanel

zax*_*y78 5 java swing jpanel jframe

我有井字棋,画线的简单的JPanel ...所以类TTT扩展JPanel,和内持有GameLogic对象.

一切都很好,应用程序是主要添加TTT的JFrame,一切都很好.

但是,当我想重新启动一个新游戏时,
我在我的TTT中称之为"重启",基本上就是这样:gameLogic = new GameLogic(); &repaint();

现在我的数据数组是干净的,它应该只绘制线条..

任何方式Windows都没有改变.

我没有运气就尝试了一切.有什么建议?

GameBoard.java:

public class GameBoard extends javax.swing.JPanel {
private GameBoardLogic GameLogic;

//.....

public void Restart()
{
    GameLogic = new GameBoardLogic();
    removeAll();
    repaint();
}
Run Code Online (Sandbox Code Playgroud)

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();
     }
Run Code Online (Sandbox Code Playgroud)

Pet*_*sik 9

对我来说,总是这样做

panel.removeAll();
//add your elements
revalidate();
repaint();
Run Code Online (Sandbox Code Playgroud)