gpt4 book ai didi

javafx-2 - Javafx中如何使用Task类的call方法的返回值

转载 作者:行者123 更新时间:2023-12-04 02:31:46 29 4
gpt4 key购买 nike

我正在使用 Task 类在 javafx 应用程序中运行后台任务以从数据库中获取数据。

public class CustomTask extends Task<ObservableList<ObservableList>> {
TableView tableview;
ObservableList<ObservableList> data;

public CustomTask(TableView tableview) {
this.tableview = tableview;
}

@Override
protected ObservableList<ObservableList> call() throws Exception {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String SQL = "SELECT * from sell where Date='" + dateFormat.format(date) + "'";
ResultSet rs = DBConnect.getResultSet(SQL);
data = DBConnect.generateListDateFromTable(rs, true);

return data;
}
}

如何使用数据对象。

最佳答案

示例 1 addEventHandler

MyResultObjectType result;
CustomTask task = new CustomTask();
task.addEventHandler(WorkerStateEvent.WORKER_STATE_SUCCEEDED,
new EventHandler<WorkerStateEvent>() {
@Override
public void handle(WorkerStateEvent t) {
result = task.getValue();
}
});

示例 2 setOnSucceeded

MyResultObjectType result;
CustomTask task = new CustomTask();
task.setOnSucceeded(new EventHandler<WorkerStateEvent>() {
@Override
public void handle(WorkerStateEvent t) {
result = task.getValue();
}
});

示例 3 addListener

task.valueProperty().addListener(new ChangeListener<Task>() {
@Override
public void changed(ObservableValue<? extends mytype> obs,
mytype oldValue, mytype newValue) {
if (newValue != null) {
System.out.println("Result = " + newValue);
}
}
});

关于javafx-2 - Javafx中如何使用Task类的call方法的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11703568/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com