📄 myjasperviewerjnlp.java
字号:
package cn.edu.hlju.oa.kygl.print;
import net.sf.jasperreports.engine.*;
import cn.edu.hlju.oa.kygl.db.DBConnection;
import java.util.*;
import net.sf.jasperreports.view.JasperViewer;
import java.sql.Connection;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import net.sf.jasperreports.view.JRViewer;
import net.sf.jasperreports.engine.util.JRLoader;
import java.text.SimpleDateFormat;
public class MyJasperViewerJNLP extends JFrame {
private JPanel contentPane;
private BorderLayout borderLayout1 = new BorderLayout();
public MyJasperViewerJNLP(String[] args) {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit(args);
} catch (Exception e) {
StackTraceElement[] msg = e.getStackTrace();
StringBuffer sb = new StringBuffer();
for( int i = 0; i < msg.length; i++)
sb.append(msg[i].getLineNumber()+":"+msg[i].getClassName()+":"+msg[i].getMethodName()+"\n");
JOptionPane.showMessageDialog(this,new JTextArea(e.getMessage()+"\n"+sb.toString()));
e.printStackTrace();
}
}
//Component initialization
private void jbInit(String[] args) throws Exception {
String reportName = "";
contentPane = (JPanel)this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(640, 480));
this.setTitle("XueDi");
//Set JDBC driver: note: by runing the jasper in web application.
//The ReportViewer at client must access to the Mysql Server
//Class.forName("org.gjt.mm.mysql.Driver").newInstance();
//Connection con1 = DriverManager.getConnection("jdbc:mysql://MYSERVER:3306/MyDB", "User", "Pwd");
//From client, get the report over HTTP, the arg passed over jnlp by param 0, arg 1 is report name to request.
Connection conn;
conn = DBConnection.getConnection();
java.util.Map parameters = new java.util.HashMap();
java.net.URL u = new java.net.URL(args[0] + "/report/" + args[1]);
this.getContentPane().add(new JTextArea(u.toString()+"\n"+conn.toString()),BorderLayout.CENTER);
JasperReport template = (JasperReport)JRLoader.loadObject(u.openStream());
//JasperReport template = JasperManager.loadReport(u.openStream());
JasperPrint jasperPrint = JasperFillManager.fillReport(
template,
parameters,
conn);
//java.net.URL u = new java.net.URL(args[0] + "report/" + args[1]);
//JasperReport template = JasperManager.loadReport(u.openStream());
//Prepare parameters to pass over the Jasper
//java.util.Map parameters = new java.util.HashMap();
//We passed param of arg 3 as passed from jnlp.
//parameters.put("SOMEVAL", args[2]);
//JasperPrint report = JasperManager.fillReport(template, parameters, con1);
//Start the viewer
JRViewer jrv = new JRViewer(jasperPrint);
contentPane.add(jrv,BorderLayout.SOUTH);
contentPane.setPreferredSize(new Dimension(640, 480));
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
public static void main(String[] args) {
try {
MyJasperViewerJNLP frame = new MyJasperViewerJNLP(args);
frame.validate();
frame.setLocation(100, 100);
frame.setVisible(true);
/*SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD");
Date newDate = format.parse("2226-11-02");
Calendar calendar = Calendar.getInstance();
calendar.setTime(newDate);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
System.out.println("year="+year);*/
} catch (Exception ex) {
JOptionPane.showMessageDialog(null,new JTextArea(ex.getMessage()));
ex.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -