JRViewer并不令人耳目一新

时间:2014-05-23 07:16:36

标签: java swing jasper-reports

我想使用JRViewer在jpanel上显示 JasperReports 的报告。

enter image description here

在我的应用程序中(如上图所示),我有一个jcombobox和一个jbutton。我在jcombobox中有多个报告名称,点击jbutton我想在jrviewer中显示报告。当我从组合框中选择其他报告名称后单击按钮时,我第一次单击该按钮时,按钮工作按钮不起作用。

下面是我正在使用的代码

reportPanel = new JPanel();
reportPanel.setBackground(Color.white);

JScrollPane scrollPane = new JScrollPane(reportPanel);
scrollPane.setBounds(20, 150,dim.width-60, 370);

mainPanel.add(scrollPane);   

String pathUrl = System.getProperty("user.dir");

String district_cd = getKeyForValue(districtMap, districtCombo.getSelectedItem().toString());
String jasper_name = getKeyForValue(reportMap, reportCombo.getSelectedItem().toString());

String filename = FilenameUtils.removeExtension(jasper_name);

Map reportParameter = new HashMap();  
reportParameter.put("district_cd", district_cd);

JasperReport report = (JasperReport) JRLoader.loadObject(pathUrl+"//"+jasper_name);

JasperPrint jasperPrint = JasperFillManager.fillReport(report,reportParameter,patchConnection);

JRViewer jrviewer = new JRViewer(jasperPrint);

reportPanel.setLayout(new BorderLayout());
reportPanel.add(jrviewer);

reportPanel.revalidate();
reportPanel.repaint(50L);

mainPanel.revalidate();
mainPanel.repaint(50L);

stopWaitCursor(frame);
frame.repaint();

2 个答案:

答案 0 :(得分:0)

它有效,但你看不到它...... 每次你的方法都添加一个新的滚动窗格,新的报表面板和一个新的JRViewer等等。但你没有清除旧的。之前从主面板中删除旧组件。

答案 1 :(得分:0)

reportPanel.removeall();

完成了工作。 现在它正常运作。 谢谢所有提供支持