1

我们知道 jasper viewer 需要很多时间来根据将显示的数据处理报告。我想处理它,给用户加载信息。这是我的步骤:

  1. 检查,查看器是否正在处理或已完成。
  2. 如果正在处理中,请创建 JLabel 并将文本设置为“正在加载报告...”
  3. 如果完成,将文本设置为 "" 或 null

第一,我不知道如何检查查看器是否在生成过程中?请帮我。谢谢 :)

4

1 回答 1

0

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();

}
于 2013-03-27T04:09:07.977 回答