IReport

E aí galera blz, estou com um problema em meu código Java. Estou querendo gerar um relatório a partir de uma Tabela. A criação da tabela está ok, mas quando tento criar o relatório esse lê todos os dados da tabela, mas aparece tudo NULL. Alguém pode me ajudar.

package visualconsignacao;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.table.DefaultTableModel;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.data.JRTableModelDataSource;
import net.sf.jasperreports.view.JasperViewer;

import relatorios.ChamaRelatorio;

public class principalvisual extends JFrame {
	private JTextArea displayArea;
	private JTable tabela;
	private JButton openFile;
	private JPanel buttonPanel;
	private File file;
	private Container container;
	private ArrayList lista;
	private SimpleTableModel model;
	//Configura a GUI para criar o contexto e ambiente da aplicação.
	
	public principalvisual(){
		super("Programa conversor de arquivo de consignação");
		container = getContentPane();
		
		//Configura o painel da aplicação
		buttonPanel = new JPanel();
		
		//Configura o botão para abrir o arquivo e adicina ao painel da aplicação
		openFile = new JButton("Localizar arquivo...");
		buttonPanel.add(openFile);
		
		//Ouvinte do botão, responsável por capturar o evento quando o usuário clica no botão
		openFile.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent evento){
						openFile(true);
						//rel = new ChamaRelatorio();
						//rel.criaRelatorio();
					}
				}
		
		);
		
		displayArea = new JTextArea();
		//Anexa os componentes ao container da aplicação.
		//container.add(scroll, BorderLayout.CENTER);
		container.add(buttonPanel,BorderLayout.SOUTH);
		
		//Registra o ouvinte para a janela quando o usuário sair do programa.
		addWindowListener(
				new WindowAdapter(){
					public void windowClosing(WindowEvent evento){
						
						System.exit(0);
					}
				}
		);
		
		pack();
		setSize(800,500);
		setVisible(true);
	}
	private void openFile(boolean primeiro){
		if (primeiro){
			JFileChooser fileChooser = new JFileChooser();
			fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
			int result = fileChooser.showOpenDialog(this);
			
			if (result == fileChooser.CANCEL_OPTION)
				return;
			
			file = fileChooser.getSelectedFile();
		}
		
		if (file ==null || file.getName().equals("")){
			JOptionPane.showMessageDialog(this,"Arquivo inválido","Arquivo inválido",JOptionPane.ERROR_MESSAGE);
		}
		else{
			try {
				FileReader ler = new FileReader(file);
				BufferedReader leitor = new BufferedReader(ler);
				String linha;
				lista = new ArrayList();
				String[] coluna = new String[]{"NOME","CPF","VALOR PARCELA"};
				while((linha = leitor.readLine())!=null){
					//input = number.parse(linha.substring(143,152).trim());
					//real = input.doubleValue();
					//rel.setdadosRelatorio(linha.substring(15,45));
					lista.add(new String[]{linha.substring(15,45),linha.substring(51,62),linha.substring(143,152)});
				}
							
				//*******************************************************************
				try {
					//setdadosRelatorio("Clara");
					//setdadosRelatorio("Isabela Orlinda");
					model = new SimpleTableModel(lista,coluna);
					JRTableModelDataSource ds = new JRTableModelDataSource(model);
					String arquivoJasper = "relatorios\\Relatorioconsignado.jasper";
					HashMap map = new HashMap();
					JasperPrint rel = JasperFillManager.fillReport(arquivoJasper, map, ds);
					JasperViewer.viewReport(rel, false);
					
				} catch (JRException e) {
					// TODO Auto- generated catch block
					e.printStackTrace();
				}
				
				//*********************************************************************
				tabela = new JTable(model);
				JScrollPane scroll = new JScrollPane(tabela);
				container.add(scroll, BorderLayout.CENTER);
				pack();
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}	
	

vc tem dados no seu relatorio???

como esta fazendo a consulta para gera-lo??

vlws

Olha obrigado pela ajuda mas já encontrei uma solução para meu problema.
O programa pega informações de um arquivo e repassa essas informações,
para o relatório no IReport.