Hola a todos tanto tiempo, 
pues aqui va una pequeña aportacion para todos los q recien comienzan y para los q no tanto, les dejo un ejemplo de una aplicación swing y JasperReport. 
Primero que herramientas estoy usando:
Netbeans IDE 6.0
IReport 2.0.2
PostgreSQL 8.1 
Librerias Necesarias, que se deben importar al Netbeans: 
postgresql-8.2-506.jdbc3.jar
poi-2.5.1-final-20040804.jar
jdt-compiler-3.1.1.jar
jasperreports-1.3.1.jar
commons-beanutils-1.7.jar
commons-collections-3.2.jar
commons-digester-1.7.jar
commons-javaflow-20060411.jar
commons-logging-1.0.2.jar 
la mayoria de estas librerias las pueden encontrar en el directorio /lib del IReport y las demas, en San Google como el JDBC de Postgres o la BD que quieran. 
Crean un Proyecto Swing, añaden las siguientes importaciones al formulario:  
Código:
 import java.sql.*;
import java.io.*;
import java.util.*;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
  Crean un boton en el formulario y le añaden el codigo para cargar el reporte en la Accion:  
Código:
     @Action
    public void VerReporte() throws JRException {
        //La Ruta de nuestro reporte
        String filejasper = "z:\\Test1.jrxml";
        
        try 
        {
            //Cargamos archivo fuente jxml.
            JasperDesign jasperDesign = JRXmlLoader.load(filejasper);
            
            //Compilar el Reporte.
            JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
            
            //cargamos parametros del reporte (si tiene).
            Map parameters = new HashMap();
            parameters.put("REPORT_LOCALE",new java.util.Locale("es","CL"));
            parameters.put("parametro1","Hola Mundo!");
           
            //Preparacion del reporte (en esta etapa se inserta el valor del query en el reporte).
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, getConnection());
            //Cargar reporte en el visor.
            JasperViewer jasperviewer = new JasperViewer(jasperPrint,false);
            
            //Le ponemos un titulo personalizado al visor, y desplegamos el reporte.
            jasperviewer.setTitle("Reporte de Prueba");
            jasperviewer.show();
            
        }
        catch(Exception e)
        {
         JOptionPane.showMessageDialog(mainPanel, e.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);   
        }
                
    }
  y les dejo ademas la rutina de conexion con la BD, que mas  
Código:
     public static Connection getConnection() throws ClassNotFoundException, SQLException {
        //Configuración de la conexión.
        String driver = "org.postgresql.Driver";
        String connectString = "jdbc:postgresql://localhost:5432/MiBaseDeDatos";
        String user = "postgres";
        String password = "xxxxxx";
        Class.forName(driver);
        Connection conn = DriverManager.getConnection(connectString, user, password);
        
        //Retornamos la conexión establecida.
    return conn;
    }
  Bueno espero que les sea de utilidad para entender el funcionamiento basico del API JasperReport, y que sigan aportando tan buenas contribuciones como hasta ahora. 
Saludos Cordiales!!!