Ich habe eine Swing-Anwendung erstellt. Ich habe einen Bericht mit iReport 5.6.0 erstellt. Jetzt, wenn ich den Bericht aufruft und versuche, den Bericht in JInternalFrame hinzuzufügen, löst er Ausnahme aus. Ich teile meinen Code weiter unten.JasperReports: JRViewer verursacht Ausnahme in Container in JInternalFrame hinzugefügt werden
Report Viewer
public class MyReportViewer extends JInternalFrame {
public MyReportViewer(String fileName){
this(fileName, null);
}
public MyReportViewer(String fileName, HashMap parameter) {
super("View Report",true,true,true,true);
try {
DB_Con db = new DB_Con();
JasperPrint print = JasperFillManager.fillReport(fileName,parameter,db.con);
java.util.List list = print.getPages();
if(!(list.isEmpty())) {
JRViewer viewer = new JRViewer(print);
Container contentPane = super.getContentPane();
contentPane.removeAll();
contentPane.add(viewer);
int sW =(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
int sH = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight()-50;
setBounds(0,0,sW,sH);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
} else {
BOptionPane.showMessageDialog(null,
BOptionPane.REPORT_MESSAGE,
BOptionPane.ERROR_TITLE,
BOptionPane.ERROR_ICON);
}
}catch(JRException jre){
jre.printStackTrace();
}
}
}
Hauptrahmen
public class frmMenu extends JFrame {
public frmMenu(){
initComponents();
}
JDesktopPane dPane = new JDesktopPane();
//---- itemAllSizeInfo ----
itemAllSizeInfo.setText("All Size List");
itemAllSizeInfo.setFont(new Font("Rupali", Font.BOLD, 14));
itemAllSizeInfo.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
MyReportViewer sizeInfo = new MyReportViewer(".\\Report\\All_Size_List.jasper");
dPane.add(sizeInfo);
sizeInfo.setVisible(true);
}
});
Die Ausnahme:
Exception in thread "AWT-Eventqueue-0" java.lang . Stackoverflow bei net.sf.jasperreports.view.JRViewer $ 23.getRenderersCache (JRViewer.java:2256) bei net.sf.jasperreports.view.JRViewer $ 23.getRenderersCache (JRViewer.java:2256) bei net.sf.jasperreports .view.JRViewer $ 23.getRenderersCache (JRViewer.java:2256) bei net.sf.jasperreports.view.JRViewer $ 23.getRenderersCache (JRViewer.java:2256) bei net.sf.jasperreports.view.JRViewer $ 23.getRenderersCache (JRViewer.java:2256) bei net.sf.jasperreports.view.JRViewer $ 23.getRenderersCache (JRViewer.java:2256) bei net.sf.jasperreports.view.JRViewer $ 23.getRenderersCache (JRViewer.java:2256) bei net.sf.jasperreports.view.JRViewer $ 23.getRenderersCache (JRViewer.java:2256) bei net.sf.jasperreports.view.JRViewer $ 23.ge tRenderersCache (JRViewer.java:2256)
Kann jemand helfen, herauszufinden, um das Problem zu überwinden. Ich benutze iReport 5.6.0 und JDK 1.7.0 Version
Es gibt nicht genug Informationen, um zu reproduzieren, StackOverflow bedeutet, dass Sie endlos innerhalb eines Metodos Schleifen, Beispiel das actionPerformed wird durch das Zeug ausgelöst, das Sie darin tun. –
Dieser Bericht funktionierte gut, bevor ich diesen Bericht mit iReport 5.6.0 kompiliert habe. Der Bericht wurde mit iReport 1.XX Version entwickelt. Kannst du mir sagen, was ich tun soll? –
Es ist wahrscheinlich nicht der Bericht, aber Ihr Java-Code .. versuchen Sie, ein paar Break-Punkte und/oder loggen Sie Ihre Methoden ein. Ich kann nicht testen, da ich nicht den ganzen Code habe. –