Exception in thread "Thread-3" java.lang.NullPointerException

2 respostas
Bruno_Gabriel_da_Sil

Galera estou rodando minha aplicação, porém está gerando Exception in thread "Thread-3" java.lang.NullPointerException, detalhe estou referenciando meu caminho.

Não consigo ver no que erro....Alguem pode me dar uma força??

Essa é a parte do codigo onde passo como parametro minha tarefa tarefasLM.addLinha(tarefas);

public class AtualizadorTarefa extends Thread {
	// private ServicoTarefa repo;
	private Tarefa tarefas;
	private TarefasListModel tarefasLM;
	private int UltimaTarefaObtida = 0;
	private ControllerTarefa controlador;

	public AtualizadorTarefa() {
		try {
			controlador = new ControllerTarefa();
			this.start();
			return;
		} catch (InfraException e) {

			e.printStackTrace();
		}
	}

	public void run() {

		try {
			if (UltimaTarefaObtida <= controlador.obterQuantidadeTarefas()) {
				for (UltimaTarefaObtida = 0; UltimaTarefaObtida <= controlador
						.obterQuantidadeTarefas(); UltimaTarefaObtida++) {
					tarefas = controlador.obterTarefa(UltimaTarefaObtida);
					System.out.println("Ultima tarefa " + tarefas);
					tarefasLM.addLinha(tarefas);
					Thread.sleep(2000);
				}
			}
			return;

		} catch (InterruptedException e) {
			return;
		}
	}
}
Já neste codigo é onde eu tenho o metodo (ultimo dessa classe) que irá receber o parametro
public class TarefasListModel extends AbstractTableModel 
{
	/**
	 * 
	 */
	private static final long serialVersionUID = -6353415277910146399L;
	private static String[] colunas = { "Status", "Início", "Prazo", "Título" };
	private List<Tarefa> tarefas;

	public TarefasListModel(ControllerTarefa ct)
	{
		tarefas = new ArrayList<Tarefa>();
		if (ct != null)
		{
			for (int x = 0; x < ct.obterQuantidadeTarefas(); x++)
			{
				System.out.println("Tarefas " + tarefas);
				tarefas.add(ct.obterTarefa(x));
			}
		}
	
	}
	
	public void removeTarefa(int pos)
	{
		tarefas.remove(pos);
		fireTableDataChanged();
	}
	
	@Override
	public int getColumnCount() {
		return 4;
	}

	@Override
	public int getRowCount() {
		System.out.println("Tarefas " + tarefas);
		return tarefas.size();
	}

	@Override
	public Object getValueAt(int row, int col) {
		
		Tarefa t = tarefas.get(row);
		
		switch(col)
		{		
			case 0: 
				return t.getStatus();
			case 1: 
				return t.getDataInicio();
			case 2: 
				return t.getDataPrazo();
			case 3: 
				return t.getTitulo();
			default :
				throw new IllegalArgumentException("Coluna Inválida: " + col);
					
		}
	}
	
	public String getColumnName(int pos){
		return colunas[pos];
	}
	
	public void addLinha(Tarefa t){
		tarefas.add(t);
		super.fireTableRowsInserted(getColumnCount()-1, getRowCount()-1);
		System.out.println("Tarefa " + t + " acabou de ser adicionada");
	}

}

Se alguem puder me ajudar agradeço muito.

2 Respostas

Bruno_Gabriel_da_Sil

Galera descobri o erro já…

é necessario somente dar um tarefasLM = new TarefasListModel(controlador);

:smiley:

bestlinux

Você não deveria ter criado o objeto TarefasListModel antes de usa-lo ?

tarefasLM.addLinha(tarefas);
Criado 20 de maio de 2010
Ultima resposta 20 de mai. de 2010
Respostas 2
Participantes 2