找不到符号JasperCompileManager.compileReport(),JasperFillManager.fillReport()吗?

时间:2019-06-16 05:44:34

标签: java javafx jasper-reports report

我想用Jasper在JavaFX上创建报告。我将数据从MySql导出到Jasper报告中,一切正常。我将Jasper Reports 6.2.0库导入到Netbeans 8.2上的项目库中。当我想创建一个方法(在我的情况下为showReport())并单击一个按钮时打开Jasper File时,它显示错误cnnot在compileReport()方法和fillReport()方法上找不到符号。

这也是代码的图片!! enter image description here

代码在这里:

public void showReport(){
    try{
        JasperReport jasperReport = new JasperCompileManager.compileReport(" C:\\Users\\PC\\Desktop\\fxmlTest\\src\\fxmltest\\newReport.jasper");
        JasperPrint jasperPrint   = new JasperFillManager.fillReport(jasperReport,null,connection);      
        JRViewer viewer  = new JRViewer(jasperPrint);
        viewer.setOpaque(true);
        viewer.setVisible(true);

        this.add(viewer);
        this.setSize(900,500);
        this.setVisible(true);
    }catch(Exception e){
        System.out.println( e.getMessage());
    }
};

1 个答案:

答案 0 :(得分:2)

JasperCompileManager.compileReportJasperFillManager.fillReportstatic方法。

您在分配右侧使用的语法

new JasperCompileManager.compileReport(" C:\\Users\\PC\\Desktop\\fxmlTest\\src\\fxmltest\\newReport.jasper")
new JasperFillManager.fillReport(jasperReport,null,connection)

告诉编译器分别调用static中的compileReport内部类JasperCompileManagerfillReport中的JasperFillManager的构造函数。 (或者也可以选择fillReport包中的JasperCompileManager类和fillReport包中的JasperFillManager的构造函数。)但是这些类不存在,因此您可以得到编译时错误。您需要删除这些new关键字:

JasperReport jasperReport = JasperCompileManager.compileReport(" C:\\Users\\PC\\Desktop\\fxmlTest\\src\\fxmltest\\newReport.jasper");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,null,connection);