JavaFX计时器 - 线程

时间:2016-06-22 13:35:02

标签: java multithreading javafx timer

通常,此代码必须在JavaFX中更新TableView的持续时间字段,但不知怎的,我无法使其工作。当我使用newCli.durationProperty().setValue(Integer.ToString(seconds++));但它无法以这种方式工作时,它可以正常工作,也许我错过了一些简单的东西,任何帮助都会受到赞赏。我尝试使用SimpleDateFormat格式化文本,但结果却相同。

                    Timer timer = new Timer();
                    timer.scheduleAtFixedRate(new TimerTask() {
                        int seconds=0;
                        @Override
                        public void run() {
                            Platform.runLater(new Runnable() {
                                @Override
                                public void run() {
                                      int hr = seconds/3600;
                                      int rem = seconds%3600;
                                      int mn = rem/60;
                                      int sec = rem%60;
                                      String hrStr = (hr<10 ? "0" : "")+hr;
                                      String mnStr = (mn<10 ? "0" : "")+mn;
                                      String secStr = (sec<10 ? "0" : "")+sec;
                                      StringBuilder sb=new StringBuilder();
                                      sb.append(hrStr+":"+mnStr+":"+secStr);
                                      newCli.durationProperty().setValue(sb.toString());
                                      seconds = seconds++;     
                                  }
                            });
                        }
                    }, 0, 1000);

0 个答案:

没有答案