Resulltado do banco da nullpointerexception

ola,
quando pesquiso no banco um resultado da o erro mencionado acima mas eu sabia q isto poderia ocorrer e tentei usar um outro if para controlar isto mas ele não funciona alguém pode me ajudar a arrumar este codigo ja q ele não esta funcionando ou pode me explicar o q estou fazendo errado para q eu possa arrumar?obg
o cod é este [code]System.out.println(“select valor_real_pgto from financa_aluno where rc_aluno=’”+ t2.getText() +"’");
resultado = comando.executeQuery(“select valor_real_pgto from financa_aluno where rc_aluno=’”+ t2.getText() +"’");//
if(resultado.next())
{
if(resultado.getObject(1).toString()!=null)
{
ft[1][k].setText(resultado.getObject(1).toString());//nullpointerexption
k++;
}
else
{
JOptionPane.showMessageDialog(null, “Não há registros de pagamento!”);
System.out.println(“else”);
}
System.out.println(ft[1][k].getText()+k);
}
if(!(resultado.next()))
{
JOptionPane.showMessageDialog(null, “Não há registros de pagamento!”);
}
else

			JOptionPane.showMessageDialog(null, "Esgotou as possibilidades");

[/code]
obg

O que deverá ser null não é resultado.getObject(1).toString(), mas sim resultado.getObject(1) ou ft[1][k]

Em qual linha esta dando erro de NullPointerException?

Outra coisa aki:

if(resultado.getObject(1).toString()!=null) { ft[1][k].setText(resultado.getObject(1).toString());//nullpointerexption k++; }
vc ta pegando o resultado e dando um .toString(), e se o valor for Null ele da NullPointerExcpetion…

[]'s

Não sei se existe alguma implementação melhor, mas uso o try / catch nesse caso para detectar o nullpointerexception e assim determinar quando o resultado da pesquiza não retornou nada ( informo : “Vazio” ).

+++

[quote=andre_teprom]Não sei se existe alguma implementação melhor, mas uso o try / catch nesse caso para detectar o nullpointerexception e assim determinar quando o resultado da pesquiza não retornou nada ( informo : “Vazio” ).

+++
[/quote]

Boa… eu tambem uso o try/ catch … me ajuda muito!

[]'s

ta dando erro na linha ft[1][k].setText(resultado.getObject(1).toString());//nullpointerexption
troquei oresultado.getObject(1).toString() porresultado.getString(1)
mas mesmo assim coninua dando erro na mesma linha =[

Executa a query acima em algum aplicativo externo.
Se o resultado for vazio, significa que está faltando tratamento para retorno vazio na sua rotina.

+++

Tente usar o try / catch

try{ ft[1][k].setText(resultado.getObject(1).toString());//nullpointerexption } catch (NullPointerException e) { System.out.println (e); }

[]'s

gente eu coloquei o codigo dentro de um try/catch agora meu codigo ficou assim

[code]try{
System.out.println(“select valor_real_pgto from financa_aluno where rc_aluno=’”+ t2.getText() +"’");
resultado = comando.executeQuery(“select valor_real_pgto from financa_aluno where rc_aluno=’”+ t2.getText() +"’");//
if(resultado.next())
{
if(resultado.getString(1)!=null)
{
ft[1][k].setText(resultado.getString(1));
k++;
}
else
{
JOptionPane.showMessageDialog(null, “Não há registros de pagamento!”);
System.out.println(“else”);
}

			}
			if(!(resultado.next()))
			{
				JOptionPane.showMessageDialog(null, "Não há registros de pagamento!");
			}
			
		}
		catch(NullPointerException n)
		{
			JOptionPane.showMessageDialog(null, "Resultado vazio!");
			n.printStackTrace();
		}[/code]

mas ainda ta dando akele errro=[

Tens certeza q o erro é NullPointerException?

Pois se sim, deveria cair no catch…

[]'s

sim sim é este o erro eu até modifiquei o codigo o jeito que tu disse dai ficou assim

if(resultado.getString(1)!=null) { try{ ft[1][k].setText(resultado.getString(1)); k++; } catch(NullPointerException e){ System.out.println(e); }
e no console fica

select valor_real_pgto from financa_aluno where rc_aluno='12' java.lang.NullPointerException

Blza a verificação se um valor for nulo esta dando certo… a pergunta agora é: Todas as suas buscas estao caindo no nullpointerException?

[]'s

neste trecho de código sim mas eu acho que é porque alguns alunos tem este campo vazio no banco tipo quando é o primeiro pgto eu queria achar uma maneira de contornar isto tipo se esta vazio só não troca o texto dos textfields se não for vazio troca pelo resultado do banco isto é possivel?

Tem sim…

if(resultado.getString(1)!=null) { try{ ft[1][k].setText(resultado.getString(1)); k++; } catch(NullPointerException e){ ft[1][k].setText(""); // aki vc deixa o JtextField em branco... }

[]'s

DeGuedes,eu tentei desta forma mas continua dando erro :cry: dai não da nullpointer nakela linha ft[1][k].setText(resultado.getString(1)); mas ocorre na linhaft[1][k].setText("");

Humm…

o q seria esse ft[1][k] ?

[]'s

coloquei um system

System.out.println("resultado 1 "+resultado.getString(1)); antes do if
e olha so como ficou o consoleselect valor_real_pgto from financa_aluno where rc_aluno='12' resultado 1 400.0 java.lang.NullPointerException resultado 1 java.lang.NullPointerException resultado 1 java.lang.NullPointerException resultado 1 java.lang.NullPointerException resultado 1 java.lang.NullPointerException
não entendo pq não troca o txt pelo menos pelo valor do primeiro resultado

ft é uma matriz de jformatted]textfield q criei no inicio da classe JFormattedTextField ft[][]=new JFormattedTextField[l.length][l.length];
ft[1][k] é um objeto desta matriz é q tipo cada objeto de ft recebera um resultado diferente do banco

De Guedes,

Da forma como voce sugeriu, também não insere um NULL no campo ?

+++

Tal como eu havia dito no primeiro comentário, tf[1][k] também poderia ser null e estar a originar o NullPointerExeption.

if (ft[1][k] == null){
    ft[1][k] = new JFormattedTextField();
}