2012-08-16 70 views
2

基本上我想從我的主應用程序上的一個按鈕調用JasperViewer。 我用這個如何在關閉子框架(Java + iReport)時阻止父框架關閉?

private void btnExportActionPerformed(java.awt.event.ActionEvent evt) { 
     try { 
      JasperPrint printer = JasperFillManager.fillReport(getClass().getResourceAsStream("reportRecharge.jasper"), params, new JREmptyDataSource()); 
      JasperViewer jv = new JasperViewer(printer); 
      jv.setVisible(true); 
     } catch (JRException ex) { 
      ex.printStackTrace(); 
     } 
} 

JasperViewer出現,我關閉它,在main frame/parent也被關閉。我嘗試添加jv.setDefaultCloseOperation(HIDE_ON_CLOSE);,但它也不起作用。如何得到它?

任何幫助,將不勝感激。

+0

嘗試關閉JasperViewer後的parent.invalidate()。 – 2012-08-16 07:44:51

+0

我在哪裏放置代碼?我不明白「關閉JasperViewer後」 – 2012-08-16 07:51:07

+0

JasperViewer的onclose方法 – 2012-08-16 08:25:04

回答

5

變化如下。如果添加false,則close屬性上的默認出口將變爲false。

private void btnExportActionPerformed(java.awt.event.ActionEvent evt) { 
     try { 
      JasperPrint printer = JasperFillManager.fillReport(getClass().getResourceAsStream("reportRecharge.jasper"), params, new JREmptyDataSource()); 
      JasperViewer jv = new JasperViewer(printer,false); 
      jv.setVisible(true); 
     } catch (JRException ex) { 
      ex.printStackTrace(); 
     } 
} 
+0

我剛剛閱讀了這個答覆,非常感謝@Siddhu先生,現在它的工作原理! – 2012-08-27 01:23:08

相關問題