No final do tutorial ensina como chamar o relatório por um método.
Paezani
Bom cara fiz isso faz algum tempo…usava esta classe aqui… é pra funcionar
Qualquer dúvida pergunta…
[ ]s.
importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.ItemEvent;importjava.awt.event.ItemListener;importjava.sql.SQLException;importjava.util.HashMap;importjavax.swing.*;importnet.sf.jasperreports.engine.JRException;importnet.sf.jasperreports.engine.JasperFillManager;importnet.sf.jasperreports.engine.JasperPrint;importnet.sf.jasperreports.view.JasperViewer;publicclassmcManterRelProdutosextendsmcBotoesRelatoriosimplementsActionListener,ItemListener{JLabellOrdenarPor,lNome;JTextFieldtNome;JRadioButtonrCod,rNome;ButtonGroupbg;JComboBoxcOrdenarPor;JPanelpainelCampos;JPanelp1,p2;publicstaticvoidmain(String[]args){mcManterRelProdutosrelProdutos=newmcManterRelProdutos();relProdutos.setVisible(true);relProdutos.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}publicmcManterRelProdutos(){JInternalFramemcManterRelProdutos=newJInternalFrame("",false,false,false,false);setTitle("Relatório de Produtos");setBounds(200,200,600,200);lNome=newJLabel("Digite um nome: ");lNome.setBounds(40,40,200,40);lOrdenarPor=newJLabel("Ordenar por: ");lOrdenarPor.setBounds(50,20,200,40);tNome=newJTextField(40);rCod=newJRadioButton("Código");//lNome.setBounds(100, 30, 200, 20);rCod.addItemListener((ItemListener)this);rCod.setSelected(true);rNome=newJRadioButton("Nome");rNome.setBounds(100,30,200,20);rNome.addItemListener((ItemListener)this);bg=newButtonGroup();bg.add(rCod);bg.add(rNome);p1=newJPanel();p2=newJPanel();p2.add(lNome);p2.add(tNome);p2.add(lOrdenarPor);p2.add(rCod);p2.add(rNome);getContentPane().add(p1);getContentPane().add(p2);}publicvoidactionPerformed(ActionEventd){if(d.getSource()==this.btExecutar){JasperPrintrel=null;Stringarq="MCS_PRODUTO.jasper";//nome do arquivo.jasper//valor da caixa de textoStringordem=" ";if(rCod.isSelected()){ordem="1";}if(rNome.isSelected()){ordem="2";}try{BDConectabd=newBDConecta();//classe q se conecta com o banco de dadosHashMapmap=newHashMap();//passando parametros para o IReport, se houveremmap.put("proDesc","'%"+tNome.getText()+"%'");//valor da caixa de texto , neste caso para nomes q contenham a expressão digitadamap.put("proOrdem",ordem);//valor para o order by do select do relatórioif(bd.conecta())//conecta-se com o banco{StringarquivoJasper=arq;//pega o nome do relatório, passa o parâmetro, e o bancorel=JasperFillManager.fillReport(arquivoJasper,map,bd.con);JasperViewerviewer=newJasperViewer(rel,false);//chama o relatórioviewer.setTitle("Relatório de Produtos");viewer.show();bd.con.close();}else{System.out.println("Problemas na conexão...");}}catch(JRExceptione){JOptionPane.showMessageDialog(null,e.getMessage());}catch(SQLExceptione){e.printStackTrace();}}if(d.getSource()==this.btLimpar){tNome.setText("");rCod.setSelected(true);}if(d.getSource()==this.btSair){dispose();}}publicvoiditemStateChanged(ItemEvente){// TODO Auto-generated method stub}}