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");
Resulltado do banco da nullpointerexception
21 Respostas
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” ).
+++
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” ).+++
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
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();
}
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
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();
}
resultado = comando.executeQuery("select valor_real_pgto from financa_aluno where rc_aluno='"+ t2.getText() +"'");//
while(resultado.next())
{
try{
if(resultado.getString(1)!=null)
{
if (ft[1][k] == null){
ft[1][k] = new JFormattedTextField();
ft[1][k].setText(resultado.getString(1));
}
ft[1][k].setText(resultado.getString(1));
k++;
}
}
catch(NullPointerException e){
System.out.println(e);
//ft[1][k].setText("");
}
coloquei um system e ficou assim
if (ft[1][k] == null){
ft[1][k] = new JFormattedTextField();
ft[1][k].setText(resultado.getString(1));
k++;
System.out.println("if");
}
else
{
ft[1][k].setText(resultado.getString(1));
k++;
System.out.println("else");
}
e no console ficou assim
select valor_real_pgto from financa_aluno where rc_aluno='12'
if
if
if
if
if