2 Stimmen

Wie man eine Jasper-Vorschau in ein JPanel einfügt

Ich habe einen kleinen Bericht mit Jasper Reports erstellt und ihn mit dem Jasper Viewer wie unten dargestellt,

con = JDBCConnectionPool.getInstance().checkOut();
            String fileName = getClass().getClassLoader().getResource("com/bio/ofm/mnu/views/reports/jasperReports/repAuditReport.jrxml").getFile();
            JasperReport report = JasperCompileManager.compileReport(fileName);
            JasperPrint print = JasperFillManager.fillReport(report, null, con);
            JasperViewer viewer = new JasperViewer(print);   
            viewer.setVisible(true);

Aber ich brauche, um diesen Bericht in einem JPanel zeigen, so, ich versuchte als,

JasperViewer.setDefaultLookAndFeelDecorated(true);
            JRViewer jrv = new JRViewer(print);
            jrv.setPreferredSize(new Dimension(getSize()));
            JScrollPane reportScroll = new JScrollPane(jrv);
           panel1.add(reportScroll);

aber der Bericht wird nicht angezeigt, wie ich erwartet, bitte erklären Sie, was ist der richtige Weg, um eine Jasper-Vorschau in ein JPanel hinzufügen.

3voto

Hovercraft Full Of Eels Punkte 280443

JasperViewer erweitert JFrame, und Sie wollen keinen JFrame zu einem JPanel hinzufügen. Sie könnten vielleicht das contentPane des JasperViewers zum JPanel hinzufügen. Die anderen Probleme, die ich in einem Kommentar angesprochen habe, sind immer noch ungelöst:

Welcher Layout-Manager wird von panel1 verwendet? Fügen Sie das JScrollPane dem JPanel hinzu, nachdem die GUI angezeigt wurde? Wenn ja, rufen Sie revalidate() und repaint() für das JPanel nach dem Hinzufügen auf?

2voto

hadj chaib Punkte 21

Dies ist mein Code und er funktioniert

       JRViewer jr=new JRViewer(print); 
       jPanel1.setLayout(new BorderLayout());
       jPanel1.repaint();
       jPanel1.add(jr);
       jPanel1.revalidate();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X