gpt4 book ai didi

DynamicReports 和进度条示例的 java 程序流程

转载 作者:行者123 更新时间:2023-11-30 04:52:08 24 4
gpt4 key购买 nike

我使用DynamicReports库为我的应用程序制作报告。创建报告需要一些时间,我决定在报告尚未创建时创建自定义进度栏。代码示例后的问题。

进度条类:

public class ProgressDialog implements DialogWrapper{

private JFrame iFrame;
private JDialog iDialog;
private JPanel pane;
private final JProgressBar aJProgressBar = new JProgressBar(0, 100);

public ProgressDialog(){
onCreate();
}

@Override
public void onCreate() {
iFrame = new JFrame("Создание отчета");
iDialog = new JDialog(iFrame, true);
pane = new JPanel();
aJProgressBar.setIndeterminate(true);
pane.add(aJProgressBar, BorderLayout.NORTH);
iDialog.add(pane, BorderLayout.CENTER);
iDialog.setTitle("Создание отчета");
iDialog.setSize(300, 150);
iDialog.setResizable(false);
iDialog.setVisible(true);
return;
}

@Override
public void fillData() {}

@Override
public void onSubmit() {}

protected void onCancel(){
iDialog.setVisible(false);
iDialog.dispose();
}

public void cancel(){
onCancel();
}
}

报告抽象类

public abstract class AbstractReportMain<T extends ReportDesign<U>, U extends ReportData> {
private ProgressDialog pd;

public AbstractReportMain() {
pd = new ProgressDialog();
build();
}

protected void build() {
try {
JasperReportBuilder reportBuilder = DynamicReports.report();
U data = getReportData();
if (data != null) {
reportBuilder.setDataSource(data.createDataSource());
}
getReportDesign().configureReport(reportBuilder, data);

pd.cancel();
reportBuilder.show(false);
} catch (DRException e) {
e.printStackTrace();
}
}

protected U getReportData() {
return null;
}

protected abstract T getReportDesign();
}

问题:当我创建 ProgressDialog 时,程序流停止,但我没有关闭对话框。为什么会发生这种情况,这种行为是如何发生的以及我在哪里可以阅读到它?它如何使用以及它对我有用。谢谢。

最佳答案

我相信您的问题是您没有为进度对话框创建新线程。这是一个可以帮助您的示例。 Modal Progress Dialog example

关于DynamicReports 和进度条示例的 java 程序流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9623076/

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