2013-05-16 17 views
5

'u da kapattı JasperViewer görüntülendiğinde ve kapattığımda, ana çerçeve/ebeveyn de kapatıldı. Bunu nasıl önleyebiliriz? System.exit(n) neden olacaktır JasperViewerJFrame.EXIT_ON_CLOSE kullanıyor çağrılacak görünüyorBir JasperViewer göründüğünde ve kapattığımda, ana çerçeve/ebeveyn

JasperViewer.viewReport(jasperPrint); 
JasperViewer.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 

:

JasperViewer.viewReport(jasperPrint); 

için:

Bu

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); 
     } 

cevap

1

Değişim .. benim kodudur Böylece JVM'yi sonlandırır.

JFrame.DISPOSE_ON_CLOSE kullanarak, yalnızca bu çerçeve & imha edilir.

+0

Hala hata yaşıyorum. "statik olmayan yöntem kümesiDefaultCloseOperation (int) statik bir bağlamdan başvurulamaz. Yardım meeeeeeeeeeeeeeeeeeeeeeeee! –

2

alternatif aramaya başka bir şey yapmak gerek yok:

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

JasperViewer boolean param aldığı alternatif yapıcı/yöntem çağrısı etti: exitOnClose

Bilmiyorum eğer' ve kendi yolunu buldum ama bence en iyisi bu.

1
JasperViewer(jasperPrint, false);  

Sadece çok üst pencere kapanmaz jasperviewer ile sahte geçmek zorunda.

8

Değişim bu: JasperViewer.viewReport(jasperPrint);

Bu JasperViewer.viewReport(jasperPrint, false); düzgün çalışacaktır.