如何将变量打印到 JPanel 中,然后在变量更改时使用 main 方法重新打印变量?

Posted

技术标签:

【中文标题】如何将变量打印到 JPanel 中,然后在变量更改时使用 main 方法重新打印变量?【英文标题】:How can I print a variable into a JPanel and then use the main method to re-print the variable when it changes? 【发布时间】:2016-03-15 12:49:03 【问题描述】:

这是我的代码; https://gist.github.com/anonymous/b8ef69a391c6c4e37b92

我试过放置“label1.setText(“Bouncing bouncing ball”+bounceCount);”进入main方法,但是bounceCount这个变量当然是类变量,不能在main方法内部使用,有什么办法解决吗?

【问题讨论】:

请不要链接——所有代码都应与您的帖子一起放在此处。一方面,没有必要这样做,因为如果您的代码太大而无法在此处发布,那么要求志愿者通过就太大了。同样,请记住我们都是志愿者,因此您应该尽量让我们为您提供帮助。因此,请通过在此处发布您的代码来帮助我们解决您的问题,最好是 minimal reproducible example。 【参考方案1】:

这里有两个选择。

    在您的游戏类中添加一个“getter”方法。

public int getBounceCount() 
    return bounceCount;

然后:

   while (true) 
        game.moveBall();
        game.checkBounceCount();
        //JLabel label1 = new JLabel();
        //label1.setText("Bouncing bouncing ball" + game.getBounceCount());
        game.repaint();
        Thread.sleep(10);
    
    您的第二个选择(也是一个更好的选择)是将您的主游戏循环放在不同的线程中。您甚至可以在您的类中实现“可运行”接口。

public class Game extends JPanel implements Runnable 
  //...
  public void run() 
    //Your game's main animation loop
    while (true) 
       //Do your thing
    
  

然后在main方法中:

Thread gameLoop = new Thread(game);
gameLoop.start();

【讨论】:

以上是关于如何将变量打印到 JPanel 中,然后在变量更改时使用 main 方法重新打印变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何理解函数中的指针

如何更改函数中变量的范围? Python [重复]

从 Java Swing 中的另一个类访问 JPanel 变量

如何更改作为参数传递的变量的值?

如何更改 JFrame 中 JPanel 的大小?

试图弄清楚如何将总分恢复到主要打印出来。它正在显示但未存储在变量中