fillReport fica sublinhado em vermelho

Boa tarde.
Sou novo em java e estou criando uma aplicação que terá que gerar relatórios. Criei o relatório com o iRiport, a Biblioteca e quando fui criar o código que irá chamar o relatório , o mesmo fica com erro somente no fillReport:

private void jMenu3ActionPerformed(java.awt.event.ActionEvent evt) {
//Rel Geral Atendimentos

    dados d = new dados();
    d.conecta("localhost", "projeto", "root", "123456");
    
    try
    { ResultSet rs = d.consulta("select * from cadatendimentos");
        JRResultSetDataSource jrRS = new JRResultSetDataSource (rs);
        JasperPrint jp = new JasperFillManager.fillReport("Relatorios/RelGeralAtendimentos.jasper", new HashMap(),jrRS);
        JasperViewer Viewer = new JasperViewer (jp ,false);
        Viewer.setExtendedState(Frame.MAXIMIZED_BOTH);
        Viewer.setVisible(true);
        
               
    
     }catch(Exception e)
     {
         JOptionPane.showMessageDialog(this, "Erro ao ler dados: " +e.getMessage()) ;  
     }  
    
    
    
}

Qual erro?

A palavra fillReport apenas fica sublinhado em vermelho. Dando Ctrl + Espaço ,deveria dar alguma sugestão , mas apenas aparece a mensagem “sem sugestão” . Perguntei ao meu professor e ele disse que o método fillReport não existe… mas ele deveria existir …ele é parte do JasperFillManeger… ou deveria ser…

Olá, Jocélio! O erro está no momento que você tenta instanciar. Pelo que pude observar, o JasperFillManager tem um método estático fillReport, que retorna um objeto do tipo JasperPrint. Tente remover o “new” antes do JasperFillManager.

Julio_msv … parou de dar o erro , mas ainda não carrega o relatório … não dá erro nenhum …só não traz o relatório . Estou verificando aqui e assim que solucionar esse problema , posto aqui . Abrigado a você e ao staroski pela atenção …

Infelizmente seu professor não sabe o que está dizendo.
Ele não ensinou a compilar o código usando javac?
Aparentemente você está usando alguma IDE que nem te indica o que está errado.

Você tem essa linha aqui:

JasperPrint jp = new JasperFillManager.fillReport("Relatorios/RelGeralAtendimentos.jasper", new HashMap(),jrRS);

Perceba que há um erro de sintaxe, pois após a instrução new deve vir o construtor que você deseja invocar.
Entretanto você colocou a instrução new, seguida da invocação do método estático fillReport.

Resumindo, você não quer instanciar a classe JasperFillManager, você só quer invocar o método fillReport, então remova a instrução new.

Muito obrigado staroski . Deu certo … era isso mesmo …

1 curtida