Não consigo imprimir um relatório no meu programa java com iReport

3 respostas
A

Estou implementando uma ação no botão imprimir do meu programa, porém a ultima linha do código está com o seguinte erro:
Código:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

try {
        ConexaoInterface conexao = ConexaoImple.getInstancia();
        Connection connection;
        connection = conexao.conectar();
        String src = "Avaliacao.jasper";
        HashMap parameterMap =  new HashMap();
        parameterMap.put("cod_avaliacao",avaliacao.getCodAvaliacao());
        JasperPrint print;
        //Está linha está dando erro
        print = JasperFillManager.fillReport(src, parameterMap, connection);
        
       JasperViewer wiew = new JasperViewer(print,false);
        wiew.setVisible(true);
        
    } catch (ConexaoException e) {
        JOptionPane.showMessageDialog(this,e.getMessage()+ "Erro ao gerar Relatório");
    }
Erro:

no suitable method found for fillReport(String,HashMap,Connection)

method JasperFillManager.fillReport(String,Map<String,Object>,Connection) is not applicable

(argument mismatch; HashMap cannot be converted to Map<String,Object>)

method JasperFillManager.fillReport(InputStream,Map<String,Object>,Connection) is not applicable

(argument mismatch; String cannot be converted to InputStream)

method JasperFillManager.fillReport(JasperReport,Map<String,Object>,Connection) is not applicable

(argument mismatch; String cannot be converted to JasperReport)

method JasperFillManager.fillReport(String,Map<String,Object>,JRDataSource) is not applicable

(argument mismatch; HashMap cannot be converted to Map<String,Object>)

method JasperFillManager.fillReport(InputStream,Map<String,Object>,JRDataSource) is not applicable

(argument mismatch; String cannot be converted to InputStream)

method JasperFillManager.fillReport(JasperReport,Map<String,Object>,JRDataSource) is not applicable

(argument mismatch; String cannot be converted to JasperRepor

Alguém pode me ajudar?

3 Respostas

I

O caminho (src) do seu relatório é só Avaliacao.jasper?

Erro: "Nenhum método adequado encontrado para fillReport(string HashMap, Connection)" É esperado um Map e você passou um HashMap - HashMap não pode ser convertido para Map<String. Object>… Ou seja, passe um Map e não HashMap.

A
O caminho (src) é esse sim Iohannes.

Fiz a troca que você falou, antes não compilava agora compila e quando aciono obotão imprimir ele aparece um novo err

try {

ConexaoInterface conexao = ConexaoImple.getInstancia();

Connection connection;

connection = conexao.conectar();

String src = Avaliacao.jasper;

Map parameterMap = null ;

//O erro agora está aqui

parameterMap.put(cod_avaliacao,avaliacao.getCodAvaliacao());

JasperPrint print;

print = JasperFillManager.fillReport(src, parameterMap, connection);
JasperViewer wiew = new JasperViewer(print,false);
        wiew.setVisible(true);
        
    } catch (ConexaoException | JRException e) {
        JOptionPane.showMessageDialog(this,e.getMessage()+ "Erro ao gerar Relatório");
    }
    
    
    Novo erro:
Exception in thread AWT-EventQueue-0 java.lang.NullPointerException

at performancehumana.gui.TelaPrincipalComMenuInicial.jButton1ActionPerformed(TelaPrincipalComMenuInicial.java:466)

at performancehumana.gui.TelaPrincipalComMenuInicial.access$700(TelaPrincipalComMenuInicial.java:53)

at performancehumana.gui.TelaPrincipalComMenuInicial$8.actionPerformed(TelaPrincipalComMenuInicial.java:246)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)

at java.awt.Component.processMouseEvent(Component.java:6533)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)

at java.awt.Component.processEvent(Component.java:6298)

at java.awt.Container.processEvent(Container.java:2236)

at java.awt.Component.dispatchEventImpl(Component.java:4889)

at java.awt.Container.dispatchEventImpl(Container.java:2294)

at java.awt.Component.dispatchEvent(Component.java:4711)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)

at java.awt.Container.dispatchEventImpl(Container.java:2280)

at java.awt.Window.dispatchEventImpl(Window.java:2746)

at java.awt.Component.dispatchEvent(Component.java:4711)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)

at java.awt.EventQueue.access$500(EventQueue.java:97)

at java.awt.EventQueue$3.run(EventQueue.java:709)

at java.awt.EventQueue$3.run(EventQueue.java:703)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)

at java.awt.EventQueue$4.run(EventQueue.java:731)

at java.awt.EventQueue$4.run(EventQueue.java:729)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
I

Está lançando uma Exceção de Ponteiro Nulo (NullPointerException). Segundo a documentação (Docs Oracle - NullPointerException):

Exceção lançada quando um aplicativo tentar usar um dado de valor null, mas era necessário um objeto. Isso pode acontecer nos seguintes casos:

  • Pela invocação de um método por meio de uma instância (objeto) de valor null;
  • Na tentativa de acessar ou modificar um campo (atributo) de um objeto de valor null;
  • Na tentativa de utilizar uma matriz cujo valor é null;
  • Na tentativa de utilizar posições de uma matriz cujo valor é null.

Como se vê, o problema geralmente envolve a utilização de um objeto de valor null. No erro, informa que o problema se encontra da linha 466 do seu código, classe TelaPrincipalComMenuInicial, mais precisamente no código do JButton jButton1.

Criado 4 de novembro de 2019
Ultima resposta 5 de nov. de 2019
Respostas 3
Participantes 2