6
votes

Lorsqu'un jasperviewer apparaît et je le ferme, le cadre principal / parent également fermé

Quand un JasperViewer code> apparaît et je le ferme, le cadre principal / parent également fermé. Comment éviter cela?

Ceci est mon code .. P>

 private void cmdprintidMouseClicked(java.awt.event.MouseEvent evt) {                                        
        // TODO add your handling code here:
        try {
            JasperDesign jasperDesign = JRXmlLoader.load("report12.jrxml");
            String sql = "select * from db1 where Company LIKE '" + txtcompany.getText() + "%'";
            JRDesignQuery newQuery = new JRDesignQuery();
            newQuery.setText(sql);
            jasperDesign.setQuery(newQuery);
            JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, conn);
            JasperViewer.viewReport(jasperPrint);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }


0 commentaires

4 Réponses :


1
votes

Modification: xxx

à: xxx

Il semblerait que le jasperviewer utilise Jframe.exit_on_close qui causera system.exit (n) à appeler, terminant ainsi le jvm.

à l'aide de jframe.dispose_on_close Au lieu de cela, seul ce cadre est terminé et éliminé.


1 commentaires

Toujours avoir une erreur. "Méthode non statique SetDeFaultCloseoperation (int) ne peut pas être référencé à partir d'un contexte statique. Aide meeeeeeeeeeeeeeeeeeeeeeee!



2
votes

Pas besoin de faire quoi que ce soit, autrement que d'appeler l'alternative:

JasperViewer(jasperPrint, **false**);
JasperViewer.viewReport(jasperPrint, **isExitOnClose**);


0 commentaires

2
votes
JasperViewer(jasperPrint, false);    
You just have to pass false with jasperviewer so the parent window won't close.

0 commentaires

14
votes

changer ceci: JasperViewer.ViewReport (Jasperprint);

à jasperviewer.viewreport (jasperprint, false); Cela fonctionnera correctement.


0 commentaires