4

我有一个简单的 JPanel 用于井字游戏,画线......所以 TTT 类扩展了 JPanel,并在里面保存了一个 GameLogic 对象。

一切都很好,应用程序是 Main 添加 TTT 的 JFrame,一切都很好。

但是,当我想重新开始一个新游戏时,
我在我的 TTT 中调用“重新启动”,这基本上是这样的:gameLogic = new GameLogic(); &重绘();

现在我的数据数组很干净,它应该只画线..

无论如何Windows都没有改变。

我已经尝试了一切,但没有运气。有什么建议么?

游戏板.java:

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

//.....

public void Restart()
{
    GameLogic = new GameBoardLogic();
    removeAll();
    repaint();
}

主.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();
     }
4

1 回答 1

14

这对我有用

panel.removeAll();
//add your elements
revalidate();
repaint();
于 2012-04-28T21:38:31.887 回答