我是java的新手。我试图在Jdesktoppane中显示jasper报告,但报告不显示在jdesktoppane.I不能得到任何错误或异常运行程序如何解决这个问题.. 任何人都帮我在jdesktoppane中显示报告
private void Report() {
try
{
JasperDesignjd=JRXmlLoader.load("F:\\NetBeans\\Project\\Chit\\src\\Report\\report1.jrxml");
JasperReport jr=JasperCompileManager.compileReport(jd);
JasperPrint jp=JasperFillManager.fillReport(jr, null,chit1.conn);
JRViewer viewer = new JRViewer(jp);
jPanel1.add(viewer);
jPanel1.setVisible(true);
jDesktopPane.add(viewer);
}
catch (JRException ex)
{
System.out.println(ex);
}
}
谢谢..
答案 0 :(得分:0)
您必须向JDesktopPane添加JInternalFrame(我假设为JPanel1)。 我添加了一个JScrollPane来提供滚动。不确定是否需要。
JInternalFrame frame = new JInternalFrame("Report", true, true, true, true);
frame.add(new ScrollPane(viewer));
try {
frame.setSelected(true);
} catch (java.beans.PropertyVetoException e) {
}
我认为其余的(JFrame)没问题。
答案 1 :(得分:0)
我得到了显示jasper Report
的步骤创建Jinternal Frame添加以下代码,然后添加到JdesktopPane 这是代码:
private void Report() {
try {
Connection dataSource = chit1.conn;
JasperDesign jd=JRXmlLoader.load("F:\\Net Beans\\Project\\Chit\\src\\Report\\report1.jrxml");
JasperReport report=JasperCompileManager.compileReport(jd);
JasperPrint jasperPrint = JasperFillManager.fillReport(report, null, dataSource);
JRViewer viewer = new JRViewer(jasperPrint);
Container c= getContentPane();
c.setLayout(new BorderLayout());
c.add(viewer);
} catch (JRException ex) {
System.out.println(ex);
Logger.getLogger(MemberReport.class.getName()).log(Level.SEVERE, null, ex);
}
}