Javafx:使用Thread自动更新表格单元格

时间:2015-08-20 18:13:11

标签: multithreading javafx

我有一个Trade类,其中包含一个属性currentPrice,它使用getPricedata()方法从网站下载价格数据。 Trade对象将在TableView中显示为表格行。现在,我的任务:

  • 使用getPricedata()方法从互联网获取数据,每当创建对象时填充currentPrice单元格。
  • 在创建对象后每1分钟重新启动getPricedata()方法并更新表格单元格。

以下是我的代码的基本结构。但我不知道如何实现这个? 我需要哪个包裹? TaskServiceScheduledService

public class Trade{

     private DoubleProperty currentPrice;

     // need thread here
     public double getPricedata(){
             .......
     } 
}

1 个答案:

答案 0 :(得分:2)

使用memory read ScheduledService<Number>方法检索并返回值的Task<Number>。然后,您可以向服务注册call()处理程序,或者只需将onSucceeded Trade绑定到currentPrice。在服务上调用service.lastValue()(一次)将其配置为每分钟运行一次。

由于该服务正在设置setPeriod(..),因此您只应在currentPrice课程中公开ReadOnlyDoubleProperty(否则您可能会尝试拨打Trade或{{ 1}},因为它的约束会失败)。

我会做像

这样的事情
currentPriceProperty().set(...)

(代码只是输入此处而不进行测试,但它应该会给你一个想法。)