相关疑难解决方法(0)

计时器和javafx

我正在尝试编写一个代码,使用javafx以预定但不规则的间隔在屏幕上显示内容.我试图使用一个计时器(java.util,而不是javax.swing),但事实证明,如果你是从一个单独的线程工作,你不能改变应用程序中的任何东西.(像一个计时器)任何人都可以告诉我我怎么能如果它们都是单独的线程,那么让Timer与应用程序进行交互?

multithreading javafx timer javafx-2

18
推荐指数
3
解决办法
2万
查看次数

JavaFX:如何绑定两个值?

我是这里的新人:)

我有一个小问题,涉及JavaFX中的绑定.我创建了一个作为时钟工作的Task,并返回必须在特殊标签(label_Time)中设置的值.此标签显示了测验中玩家回答的剩余时间.

问题是如何使用计时器任务自动更改标签中的值?我尝试以这种方式将来自计时器任务()的值链接到label_Time值...

label_Time.textProperty().bind(timer.getSeconds());
Run Code Online (Sandbox Code Playgroud)

......但它不起作用.做这件事有什么办法吗?

在此先感谢您的回答!:)


Controller类中的Initialize方法:

public void initialize(URL url, ResourceBundle rb) {

        Timer2 timer = new Timer2();
        label_Time.textProperty().bind(timer.getSeconds());
        new Thread(timer).start();  
}
Run Code Online (Sandbox Code Playgroud)

任务类"Timer2":

public class Timer2 extends Task{

    private static final int SLEEP_TIME = 1000;
    private static int sec;
    private StringProperty seconds;


    public Timer2(){
        Timer2.sec = 180;
        this.seconds = new SimpleStringProperty("180");
    }

    @Override protected StringProperty call() throws Exception {


        int iterations;

        for (iterations = 0; iterations < 1000; iterations++) {
            if (isCancelled()) {
                updateMessage("Cancelled"); …
Run Code Online (Sandbox Code Playgroud)

binding multithreading bind task javafx-2

4
推荐指数
1
解决办法
5880
查看次数

如何在JavaFX中使用PauseTransition方法?

我读过这本书,但我仍然对暂停过渡方法感到困惑.我制作了一个显示数字的标签,我希望每秒都能增加这个数字.

javafx

4
推荐指数
1
解决办法
6103
查看次数

JavaFX的Swing计时器替代和线程管理的区别

为JavaFX使用Swing计时器是否安全?或者Swing有一个特殊的替代方案吗?JavaFX和Swing之间的线程管理有何不同?

其实我想知道的当量摇摆定时器,SwingUtilities.invokeLater()invodeAndWait()为JavaFX.

顺便说一句,如果我们在JavaFX中使用一些Swing组件呢?我们应该使用两个并行的定时器/线程来更新这些组件吗?

swing multithreading javafx timer javafx-8

3
推荐指数
1
解决办法
1753
查看次数

Java时钟同步

我必须在新德里,香港,法兰克福,华盛顿等不同地方的屏幕上显示多个时钟.这些时间正在像其他任何真正的时钟一样变化,但是作为时间 - 左到固定的日期时间,它们被添加到用户添加它们时在不同时刻的屏幕.例如:

New Delhi       1d 4h 20 min 5s
Hong Kong       9h 2min 55s
Washington      22min 3s
...
Run Code Online (Sandbox Code Playgroud)

我有一个类,它使所有的计算以这种格式获得那些时间.当这些时间显示在屏幕上时出现问题.如何让他们同时更新时间?因此,秒中的所有更改都会同时显示.我知道理论上它不会在同一时间,但最接近它.这是我正在使用的计时器:

Timer t = new Timer();   
t.scheduleAtFixedRate(
    new TimerTask()
    {
        public void run() {
          Platform.runLater(new Runnable() {
              @Override
              public void run() {
                  label[id].setText(getTimeLeft(id));
              }
          });
        }
    },
    0,      // run first occurrence immediately
    1000);  // run every seconds
Run Code Online (Sandbox Code Playgroud)

此外,他们中的一些最终冻结.有没有人知道为什么?

java multithreading timer

2
推荐指数
1
解决办法
189
查看次数

标签 统计

multithreading ×4

javafx ×3

timer ×3

javafx-2 ×2

bind ×1

binding ×1

java ×1

javafx-8 ×1

swing ×1

task ×1