Java 如何在从DefaultTableModel传递的Jasper报告表中显示数据

Java 如何在从DefaultTableModel传递的Jasper报告表中显示数据,java,jasper-reports,Java,Jasper Reports,我在JavaSwing中从事一个项目,并在JasperReport中报告 我用Jasper report设计了这个报告,我从 Java类。 现在,我想以TableModel的形式发送数据,以在报表表中设置值,但jasper报表表没有以TableModel的形式显示设置的表数据 甚至报表文件也不是通过JAR打开的。如果我正在创建jar,Jasper报告页面将抛出异常 我希望将报表表中的表模型数据发送到java代码中的tableModelData中。我正在使用以下代码 package pmc;

我在JavaSwing中从事一个项目,并在JasperReport中报告

我用Jasper report设计了这个报告,我从 Java类。 现在,我想以TableModel的形式发送数据,以在报表表中设置值,但jasper报表表没有以TableModel的形式显示设置的表数据

甚至报表文件也不是通过JAR打开的。如果我正在创建jar,Jasper报告页面将抛出异常

我希望将报表表中的表模型数据发送到java代码中的tableModelData中。我正在使用以下代码

   package pmc;
   import java.util.HashMap;
   import javax.swing.table.DefaultTableModel;
   import net.sf.jasperreports.engine.JRException;
   import net.sf.jasperreports.engine.JasperCompileManager;
   import net.sf.jasperreports.engine.JasperFillManager;
   import net.sf.jasperreports.engine.JasperPrint;
   import net.sf.jasperreports.engine.data.JRTableModelDataSource;
   import net.sf.jasperreports.view.JasperViewer;

   public class SimpleReport1 {

   DefaultTableModel tableModel;

   public SimpleReport1() {
     JasperPrint jasperPrint = null;
      TableModelData();
       try {
            JasperCompileManager.compileReportToFile("src/reports/report1.jrxml");
        jasperPrint = JasperFillManager.fillReport("src/reports/report1.jasper", new HashMap(),
                new JRTableModelDataSource(tableModel));
        JasperViewer jasperViewer = new JasperViewer(jasperPrint);
        jasperViewer.setVisible(true);
    } catch (JRException ex) {
        ex.printStackTrace();
} }

更改此行:

JasperCompileManager.compileReportToFile("src/reports/report1.jrxml");
致:

更改此行:

JasperCompileManager.compileReportToFile("src/reports/report1.jrxml");
致:

JasperCompileManager.compileReportToFile("src/reports/report1.jrxml","src/reports/report1.jasper");