1 28 import java.io.PrintWriter ; 29 import java.io.StringWriter ; 30 import java.net.URL ; 31 32 import javax.swing.JOptionPane ; 33 34 import net.sf.jasperreports.engine.JasperPrint; 35 import net.sf.jasperreports.engine.JasperPrintManager; 36 import net.sf.jasperreports.engine.util.JRLoader; 37 38 39 43 public class PrinterApplet extends javax.swing.JApplet 44 { 45 46 47 50 private URL url = null; 51 private JasperPrint jasperPrint = null; 52 53 54 55 public PrinterApplet() 56 { 57 initComponents(); 58 } 59 60 61 64 public void init() 65 { 66 String strUrl = getParameter("REPORT_URL"); 67 if (strUrl != null) 68 { 69 try 70 { 71 url = new URL (getCodeBase(), strUrl); 72 } 73 catch (Exception e) 74 { 75 StringWriter swriter = new StringWriter (); 76 PrintWriter pwriter = new PrintWriter (swriter); 77 e.printStackTrace(pwriter); 78 JOptionPane.showMessageDialog(this, swriter.toString()); 79 } 80 } 81 else 82 { 83 JOptionPane.showMessageDialog(this, "Source URL not specified"); 84 } 85 } 86 87 88 93 private void initComponents() { pnlMain = new javax.swing.JPanel (); 95 btnPrint = new javax.swing.JButton (); 96 btnView = new javax.swing.JButton (); 97 98 btnPrint.setText("Print the report"); 99 btnPrint.addActionListener(new java.awt.event.ActionListener () { 100 public void actionPerformed(java.awt.event.ActionEvent evt) { 101 btnPrintActionPerformed(evt); 102 } 103 }); 104 105 pnlMain.add(btnPrint); 106 107 btnView.setText("View the report"); 108 btnView.addActionListener(new java.awt.event.ActionListener () { 109 public void actionPerformed(java.awt.event.ActionEvent evt) { 110 btnViewActionPerformed(evt); 111 } 112 }); 113 114 pnlMain.add(btnView); 115 116 getContentPane().add(pnlMain, java.awt.BorderLayout.WEST); 117 118 } 120 protected void btnViewActionPerformed(java.awt.event.ActionEvent evt) { if (url != null) 123 { 124 try 125 { 126 if (jasperPrint == null) 127 { 128 jasperPrint = (JasperPrint)JRLoader.loadObject(url); 129 } 130 if (jasperPrint != null) 131 { 132 ViewerFrame viewerFrame = new ViewerFrame(this.getAppletContext(), jasperPrint); 133 viewerFrame.show(); 134 } 135 else 136 { 137 JOptionPane.showMessageDialog(this, "Empty report."); 138 } 139 } 140 catch (Exception e) 141 { 142 StringWriter swriter = new StringWriter (); 143 PrintWriter pwriter = new PrintWriter (swriter); 144 e.printStackTrace(pwriter); 145 JOptionPane.showMessageDialog(this, swriter.toString()); 146 } 147 } 148 else 149 { 150 JOptionPane.showMessageDialog(this, "Source URL not specified"); 151 } 152 } 154 protected void btnPrintActionPerformed(java.awt.event.ActionEvent evt) { if (url != null) 157 { 158 if (jasperPrint == null) 159 { 160 try 161 { 162 jasperPrint = (JasperPrint)JRLoader.loadObject(url); 163 } 164 catch (Exception e) 165 { 166 StringWriter swriter = new StringWriter (); 167 PrintWriter pwriter = new PrintWriter (swriter); 168 e.printStackTrace(pwriter); 169 JOptionPane.showMessageDialog(this, swriter.toString()); 170 } 171 } 172 173 if (jasperPrint != null) 174 { 175 final JasperPrint print = jasperPrint; 176 177 Thread thread = new Thread 178 ( 179 new Runnable () 180 { 181 public void run() 182 { 183 try 184 { 185 JasperPrintManager.printReport(print, true); 186 } 187 catch (Exception e) 188 { 189 StringWriter swriter = new StringWriter (); 190 PrintWriter pwriter = new PrintWriter (swriter); 191 e.printStackTrace(pwriter); 192 JOptionPane.showMessageDialog(null, swriter.toString()); 193 } 194 } 195 } 196 ); 197 198 thread.start(); 199 } 200 else 201 { 202 JOptionPane.showMessageDialog(this, "Empty report."); 203 } 204 } 205 else 206 { 207 JOptionPane.showMessageDialog(this, "Source URL not specified"); 208 } 209 } 211 212 private javax.swing.JPanel pnlMain; 214 private javax.swing.JButton btnView; 215 private javax.swing.JButton btnPrint; 216 218 } 219 | Popular Tags |