我有一个Trade
类,其中包含一个属性currentPrice
,它使用getPricedata()
方法从网站下载价格数据。 Trade
对象将在TableView
中显示为表格行。现在,我的任务:是
getPricedata()
方法从互联网获取数据,每当创建对象时填充currentPrice
单元格。 getPricedata()
方法并更新表格单元格。 以下是我的代码的基本结构。但我不知道如何实现这个?
我需要哪个包裹? Task
? Service
? ScheduledService
?
public class Trade{
private DoubleProperty currentPrice;
// need thread here
public double getPricedata(){
.......
}
}
答案 0 :(得分:2)
使用memory read
ScheduledService<Number>
方法检索并返回值的Task<Number>
。然后,您可以向服务注册call()
处理程序,或者只需将onSucceeded
Trade
绑定到currentPrice
。在服务上调用service.lastValue()
(一次)将其配置为每分钟运行一次。
由于该服务正在设置setPeriod(..)
,因此您只应在currentPrice
课程中公开ReadOnlyDoubleProperty
(否则您可能会尝试拨打Trade
或{{ 1}},因为它的约束会失败)。
我会做像
这样的事情currentPriceProperty().set(...)
(代码只是输入此处而不进行测试,但它应该会给你一个想法。)