我们知道 jasper viewer 需要很多时间来根据将显示的数据处理报告。我想处理它,给用户加载信息。这是我的步骤:
- 检查,查看器是否正在处理或已完成。
- 如果正在处理中,请创建 JLabel 并将文本设置为“正在加载报告...”
- 如果完成,将文本设置为 "" 或 null
第一点,我不知道如何检查查看器是否在生成过程中?请帮我。谢谢 :)
我们知道 jasper viewer 需要很多时间来根据将显示的数据处理报告。我想处理它,给用户加载信息。这是我的步骤:
第一点,我不知道如何检查查看器是否在生成过程中?请帮我。谢谢 :)
viewReport()
在单独的线程中进行调用。存储实例级别的 AtomicBoolean,并在报告完成后将其设置为 false。在您的客户端检查方法中,定期检查此实例变量以检查报告是否完成。
示例伪代码:
public void YourClass {
private AtomicBoolean reportRunning;
...
private void getReport() {
new Thread() {
reportRunning = new AtomicBoolean(true);
JRViewer.viewReport();
reportRunning.set(false);
}.start();
}
// Call periodically and update UI
private boolean clientCheck() {
return reportRunning != null && reportRunning.get();
}