Tôi đang sử dụng Lớp tác vụ để chạy tác vụ nền trong ứng dụng javafx để tìm nạp dữ liệu từ cơ sở dữ liệu.Cách sử dụng giá trị trả về của phương thức gọi của lớp Nhiệm vụ trong 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;
}
}
Làm thế nào để sử dụng các đối tượng dữ liệu.
Có ví dụ nào về cách thực hiện việc này không? –
chỉ onSucceeded trả về giá trị hoặc onCanceled/onFailed? Tôi tự hỏi nếu tôi hủy bỏ nhiệm vụ làm thế nào để có được giá trị hiện tại trả lại nhưng không chắc chắn nếu ràng buộc là cách duy nhất. cảm ơn – Ewoks
[setOnSucceeded] (https://docs.oracle.com/javase/8/javafx/api/javafx/concurrent/Task.html#setOnScheduled-javafx.event.EventHandler-) không liên quan gì đến giá trị của nhiệm vụ, nó chỉ là một trình xử lý sự kiện được thực thi khi nhiệm vụ thành công. Nếu bạn muốn nhận được giá trị tương ứng, thì bạn có thể thực thi [task.getValue()] (https://docs.oracle.com/javase/8/javafx/api/javafx/concurrent/Task.html#getValue--) trong phần xử lý sự kiện (như câu trả lời của marc cho câu hỏi này). – jewelsea