Oi amigo, tive o mesmo problema.
Crie um pacote Relatorios por exemplo, e depois crie dentro dele um arquivo java vazio, de o nome do sue relatorio e cole o codigo abaixo, e no seu formulario crie um botao para imprimir, e sobre este botao: botao direito, events, action, actionperformed e escreva o seguinte:
new seupacote.suaclasse(); assim o botao vai chamar a classe pra imprimir o relatorio.
Segue o meu codigo que está funcionando direitinho, substitua alguns dados pelos seus ok.
Tem que adicionar as bibliotecas instaladas no iReport ao projeto pelo netbeans para poder funcionar.
No meu caso, estou usando o iReport 4.0, as blibliotecas dele ficam na pasta C:\Program Files\JasperSoft\iReport-4.0.0\ireport\modules\ext, adicione todas, (no meu caso a ant-1.7.1, eu nao instalei porque dava erro), e adicionei tambem a biblioteca ireport.jar, do iReport 3.1. Para adicionar as bibliotecas ao projeto, clique com o botão direito sobre o projeto, dentro do netbeans, propriedades, Bibliotecas, aba Compilar, Adicionar JAR/Pasta, selecione todas e de um ok. Depois de tudo pronto, mande limpar e construir. Feito isso, vá a pasta do seu projeto e na pasta dist, onde fica o jar que vai executar a aplicação, e copie os relatorios .jasper para esta pasta dist que da certinho. Mas lembre-se, se for limpar e construir outra vez, copie novamente, pois esta pasta dist e substituida toda vez que mandamos limpar e construir o projeto. Obrigado a todos pela ajuda. Não teria conseguido sem vcs, um grande abraço. Segue o codigo fonte da classe que chama o relatorio:
package Relatorios;
import Utilitarios.Conexao;
import java.util.HashMap;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;
public class TedCaixa{
Conexao con = new Conexao(); // conexao com o banco de dados, use a sua
public TedCaixa(){
try
{
con.conecta();
con.executeSQL(“select * from pagamentos”);
JRResultSetDataSource jrRS = new JRResultSetDataSource(con.resultset);
JasperReport report = (JasperReport) JRLoader.loadObject(“tedcaixa.jasper”);
JasperPrint relatorio = JasperFillManager.fillReport(report, new HashMap(), jrRS);
JasperViewer viewer = new JasperViewer(relatorio,false);
viewer.setTitle(“Relatório de Pagamentos”);
viewer.setVisible(true);
viewer.show();
}
catch (Exception erro)
{
JOptionPane.showMessageDialog(null, " Relatorio não localizado " + erro);
}
}
public static void main (String args[])
{
TedCaixa app = new TedCaixa();
}
}
Neste caso, dava tudo certo dentro do NetBeans, mas quando eu rodava o aplicativo o relatorio não era exibido, pois faltava adicionar as bibliotecas ao projeto. Espero que estas informações ajudem alguem assim como me ajudaram. Abraços a todos. Obrigado