【问题标题】:JavaFX change Text of a Label every second [duplicate]JavaFX每秒更改标签的文本[重复]
【发布时间】:2020-06-13 21:12:30
【问题描述】:

我想向用户显示他们的每秒点击次数 (CPS),因此我想将每秒显示点击次数的标签设置为 0。问题是我需要将标签设置为静态,而这不管用。这是我的代码:

 public class Controller{

    public  Button clickButton;
    public  Label cpsLabel;
    public  Label highscoreLabel;
    static int count = 0;
//  static int highscoreInt = 0;
    public void handleButtonClick() {
        count++;
        cpsLabel.setText("CPS: " + count);
    }
    public static void Timer() {
        ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
        exec.scheduleAtFixedRate(new Runnable() {
          @Override
          public void run() {
              Controller.count = 0;
              cpsLabel.setText("CPS: " + count);
          }
        }, 0, 1, TimeUnit.SECONDS);
        }

}

【问题讨论】:

  • 查看Platform::runLater函数的文档和示例。

标签: javafx timer static label runnable


【解决方案1】:

您不应该在 Java FX 主线程之外修改 JavaFX 组件,甚至不应该在组件上放置静态。请查看以下关于Concurrency in JavaFX的文章

【讨论】:

  • 请给我一个申请的例子好吗?
  • 有大量的例子 .. 只需做一点研究(最好在完成有关 javafx 的基本教程之后,以便您理解它们:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-25
  • 2017-10-28
  • 1970-01-01
  • 2022-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多