我的程序上具有以下功能,可以完美运行。如代码所示,我只更新了GUI上3个标签上的一些文本,并且工作正常。但是,我想在每个标签更新后放置1秒的延迟/暂停,以便我可以先更新label1,然后在1秒后label2更新,然后在1秒后再次label3更新。我试图使用线程。如果有人可以帮助我,我将不胜感激。
谢谢。
私有无效displayData() {
DataHelper datahelper = new DataHelper(data1, data2, data3);
myThread = new Service<DataHelper>()
{
@Override
protected Task<DataHelper> createTask()
{
return new Task<DataHelper>()
{
protected DataHelper call() throws Exception
{
return new DataHelper(myData1, myData2, myData3);
}
};
}
};
myThread.setOnSucceeded(event ->
{
label1.textProperty().unbind();
labe2.textProperty().unbind();
label3.textProperty().unbind();
});
label1.textProperty().bindBidirectional(datahelper.text1Property());
label2.textProperty().bindBidirectional(datahelper.text2Property());
label3.textProperty().bindBidirectional(datahelper.text3Property());
myThread.restart();
}
答案 0 :(得分:0)
如果要在每次执行中延迟1秒进行绑定,则可以使用时间轴。
Timeline tl = new Timeline(new KeyFrame(Duration.seconds(1), ae -> lbl1.textProperty().bindBidirectional(data.text1Property())),
new KeyFrame(Duration.seconds(2), ae -> lbl2.textProperty().bindBidirectional(data.text2Property())),
new KeyFrame(Duration.seconds(3), ae -> lbl3.textProperty().bindBidirectional(data.text3Property())));
tl.setCycleCount(1);
tl.play();