Bem,eu fiz um programa para uma loja de carros, simples,ela chama cadastro carro,cliente,lista carro e lista clientes…
No cadastro cliente tem uma combobox com todos carros cadastrados para o vendedor selecionar os carros preferenciais do cliente que vai aparecer
numa jlist ao lado direito…mas ai é que ta,esse programa ja funcionou perfeitamente mas agora ele não funciona direito,
primeiro que quando vou abrir o cadastro cliente da NullpointerException, e o erro é na comboBox…
Eu ja fiquei semanas tentando por mim mesmo olhei de todo programa,mas não consegui,não consigo ver o erro,gostaria muito que alguem me ajudasse,se pudesse dar o msn ou sei la.
Na stack trace gerada do erro, vai indicar o arquivo e a linha onde a exceção ocorreu. Como você disse que o erro está numa combo, vou chutar qui 2 possibilidades:
1 - A variável que dá acesso ao objeto(combo) está nula. Verifique os pontos do sistema que “mexem” com essa variável, pois ou ela não está sendo instanciada ou alguém está setando ela para nulo;
2 - Verifique o trecho de código que está instanciando sua combo. Você disse que tudo já funcionou normalmente. Então podemos pensar que sua combo é preenchida com valores de alguma persistência (um banco de dados, por exemplo). Talvez a origem dos dados tenha mudado ou então a base não está mais populada;
Só uma orientação: isso que você me mandou é a descrição do seu erro. A primeira linha diz qual o erro (java.lang.NullPointerException), e as demais linhas mostram a pilha de chamadas que originou o problema, sendo a sequência das chamadas ordenadas de baixo para cima. Repare que a penúltima linha indica o local exato de onde a exceção foi disparada. Por fim, cheque o arquivo indicado na linha indicada qual o objeto que está nulo.
Agora é com você descobrir uma forma de instanciar o objeto que está nulo…
[]'s.
D
Decano
new DefaultComboBoxModel(carroMySQL.getTodosCarros()) //isso é o que ta no model do combobox
sim, tem um banco de dados…mas nao consegui ver o erro ainda.
O que faço agora?
D
Decano
Humm, ta bem vou dar uma olhada, muito obrigado, qualquer coisa eu volto postar aqui.
kaique
Cara, poderia até arriscar em dizer que seu problema é a variável carroMySQL que está nula.
Faz o seguinte, cria um if antes de executar esse código para verificar se essa variável está nula. Caso esteja, instancia ela. Essa não é a melhor forma de resolver o seu problema, pois você mesmo assim não vai ter descoberto a causa de a variável estar nula.
Sugiro que você verifique todos os outros métodos que “mexem” com essa variável. Poder ser que consiga descobrir quem está setando ela para nulo.
[]'s.
D
Decano
Isso é que esta no carroMySQL, eu so uso esse Vector para aparecer a lista de carros no combobox...sera que é algo ai?
public Vector<Carro> getTodosCarros(){
try {
Vector<Carro> listaCarros = new Vector<Carro>();
Statement s = b.createStatement();
ResultSet t1 = s.executeQuery("SELECT * FROM Carro ORDER BY nmcarro");
while (t1.next()) {
Carro c = new Carro(t1.getInt("idcarro"), t1.getString("nmcarro"), t1.getString("anocarro"), t1.getString("ntcarro"), t1.getDouble("vlrcarro"), t1.getString("placacarro"), t1.getString("corcarro"), t1.getInt("portascarro"));
listaCarros.add(c);
}
return listaCarros;
} catch (SQLException ex) {
Logger.getLogger(CarroMySQL.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
}
kaique
Acho que não. Se o problema estivesse sendo causado por um trecho de código do método getTodosCarros(), o stack trace tinha acusado qual o trecho de código estava disparando o problema.
Acho que você realmente deveria verificar o estado da variável que comentei no outro post.
[]'s.
D
Decano
Esta bem, vou verificar,vou dar uma saida e a noite eu posto aqui novamente…muito obrigado pela ajuda mesmo.
D
Decano
Seguinte,a unico codigo que tem referente ao combobox é esse, que esta no Model-código personalizado.
que é o primeiro erro que o netbeans indica quando eu chamo o cadastro cliente…
Quando eu tiro esse codigo personalizado do Model,o cadastro cliente funciona normalmente só que o combobox fica vazio,essa é a diferença…
eu quero fazer ele ficar com os carros ja cadastrados, o banco de dados tem carros e clientes cadastrados ja.
Eu sei que esta aqui nesse probleminha mas não consigo saber o que posso fazer.
kaique
Eu já postei uma mensagem com uma possível solução: verifica se a variável carroMySQL está nula. Caso esteja, verifica o porquê de ela estar nula e dê um jeito de instanciá-la.
[]'s.
D
Decano
Bem eu olhei, o erro ta ali mesmo, no combobox, pq eu tiro o model-personalizado e o cadastro cliente funciona e quando eu boto o comboBox no Cadastro Carro ele da o mesmo problema,nem aparece a tela igual o outro…eu ja pesquisei muito e mesmo assim não consigo saber o que fazer com esse problema…tem algo que eu possa botar que esta errado?
kaique
Cara, mas a gente já sabia que o problema era nessa linha. O que eu falei em outro post foi para você verificar se a variável que citei em outros posts estava nula, e não ver se o problema era naquela linha.
A seguinte linha que você postou:
O código que está entre parênteses é que deve ser o seu problema. Como já falei antes, tente ver se a variável carroMySQL está nula. Se estiver, procure saber o porquê de ela estar nula. Nesse momento, essa variável já deveria ter sido instanciada.
[]'s.
D
Decano
Consegui cara! hshshs
muito obrigado pela ajuda, era isso que tu falo mesmo, eu apenas tirei o codigo do model e botei depois do init e deu certo
tem outros probleminhas mas isso eu resolvo
valew!