java - 带有 Swingworker 的 JProgressBar
问题描述
我有一个客户端服务器程序,客户端从服务器请求(碧玉)报告并将其显示在屏幕上。报告获取部分由客户端的 Swingworker 处理,因为报告可能需要一段时间才能到达(服务器对数据库运行查询等)。
下面是我的 SwingWorker 代码:
class ReportFetcher extends SwingWorker<JasperPrint, Void> {
private String reportName;
public ReportFetcher (String reportName) {
this.reportName = reportName;
}
@Override
protected JasperPrint doInBackground() {
SocketClient client = new SocketClient(serverAddress, 9999);
client.sendSignal("Report-" + reportName);
JasperPrint print = null;
try {
print = client.getReport();
System.out.println("Report fetched : " + reportName);
} catch (Exception ex) {
...
}
client.close();
return print;
}
@Override
protected void done() {
JasperViewer jv = null;
try {
jv = new JasperViewer(get(), false);
} catch (Exception e) {
...
}
if (jv != null) {
jv.setTitle(reportName);
...
jv.setVisible(true);
}
}
}
在上面的代码中,客户端的整个耗时代码只是一个方法调用:print = client.getReport();
那么在这种情况下是否可以使用进度条?(即因为没有中间的进展迹象)?有什么建议么 ?
解决方案
推荐阅读
- wordpress - WP REST API 自定义端点以自定义帖子类型更新 ACF
- powerbi - 根据日期创建总计不同列的度量
- python - TensorFlow 错误:tensorflow/core/framework/op_kernel.cc:1767] OP_REQUIRES 在 conv_ops.cc:539 失败:资源耗尽
- elasticsearch - Elasticsearch 查询匹配 + 术语布尔值
- c++ - 我可以将一个类与模板中的另一个类关联(使用 C++17 变体)吗?
- reactjs - 如何将图像从 reactJS 发送到 Django REST 框架
- python - 使用 python-requests 访问带有验证码的站点
- sql - 查询从 3 个表中获取数据,主表和总和列从彼此 2 个表中获取
- docker - Docker无法在子目录中添加文件
- c++ - 当我在 Visual Studio 代码上键入时,我的 C++ 代码的颜色不会改变