【问题标题】:Clearing my JFrame & JPanel in a new game在新游戏中清除我的 JFrame 和 JPanel
【发布时间】:2012-04-28 21:34:02
【问题描述】:

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

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

但是,当我想重新开始新游戏时,
我在我的 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();
     }

【问题讨论】:

  • “有什么建议吗??” 1) 为了尽快获得更好的帮助,请发帖SSCCE。 2)修复那个粘性“?”键。
  • 您要发布 SSCCE 吗?

标签: java swing jframe jpanel


【解决方案1】:

这对我有用

panel.removeAll();
//add your elements
revalidate();
repaint();

【讨论】:

  • @也添加了代码。抱歉,mKorbel,现在就试试。没用。窗户不会清除。留在胜利图纸....
  • 您可以尝试在插入元素之前和之后重新验证。
猜你喜欢
  • 1970-01-01
  • 2022-06-19
  • 1970-01-01
  • 1970-01-01
  • 2011-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多