Olá pessoal,
tenho um método consultarVeiculo que está ocorrendo um erro de NullPointerException, sei que é só um erro de semântica, pois tenho na minha classe Veiculo um atributo do tipo StatusVeiculo, mas quando vou setar o valor do resultSet nele dá esse erro:
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at ControllerVeiculos.VeiculoController.consultarVeiculo(VeiculoController.java:135)
at ViewVeiculos.FormVisualizarVeiculo.formWindowActivated(FormVisualizarVeiculo.java:491)
at ViewVeiculos.FormVisualizarVeiculo.access$000(FormVisualizarVeiculo.java:30)
at ViewVeiculos.FormVisualizarVeiculo$1.windowActivated(FormVisualizarVeiculo.java:95)
at java.awt.AWTEventMulticaster.windowActivated(AWTEventMulticaster.java:372)
at java.awt.Window.processWindowEvent(Window.java:1874)
at javax.swing.JFrame.processWindowEvent(JFrame.java:279)
at java.awt.Window.processEvent(Window.java:1820)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1848)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:889)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:409)
at java.awt.Component.dispatchEventImpl(Component.java:4455)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.SentEvent.dispatch(SentEvent.java:55)
at java.awt.DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent.dispatch(DefaultKeyboardFocusManager.java:183)
at java.awt.DefaultKeyboardFocusManager.sendMessage(DefaultKeyboardFocusManager.java:210)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:286)
at java.awt.Component.dispatchEventImpl(Component.java:4455)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.SequencedEvent.dispatch(SequencedEvent.java:101)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Veja o método:
public List consultarVeiculo(Integer id) throws SQLException{
List listaVeiculos = new ArrayList();
banco.abrirConexao((String) objDados.driver, (String) objDados.url, (String) objDados.usuario, objDados.senha);
try{
Statement statement = banco.conexao.createStatement();
ResultSet resultSet = null;
resultSet = statement.executeQuery("SELECT * FROM \"VEICULO\" WHERE \"VEI_IDDOOBJETO\" = "+id+";");
while (resultSet.next()){
Veiculo veiculo = new Veiculo();
veiculo.setId(resultSet.getInt("VEI_IDDOOBJETO"));
veiculo.setPlaca(resultSet.getString("VEI_PLACA"));
veiculo.setMarca(resultSet.getString("VEI_MARCA"));
veiculo.setModelo(resultSet.getString("VEI_MODELO"));
veiculo.setPatrimonio(resultSet.getString("VEI_PATRIMONIO"));
veiculo.setTipoServico(resultSet.getString("VEI_TIPOSERVICO"));
veiculo.setCor(resultSet.getString("VEI_COR"));
veiculo.setTipoCombustivel(resultSet.getString("VEI_TIPOCOMBUSTIVEL"));
veiculo.setRendimento(resultSet.getDouble("VEI_RENDIMENTO"));
veiculo.setAnoFab(resultSet.getString("VEI_ANOFAB"));
veiculo.setAnoMod(resultSet.getString("VEI_ANOMOD"));
veiculo.setRenavan(resultSet.getLong("VEI_RENAVAN"));
veiculo.statusVeiculo.setId(resultSet.getInt("VEI_IDSTATUSVEICULO"));//Dá erro nesta linha
listaVeiculos.add(veiculo);
}
}catch(SQLException e){
JOptionPane.showMessageDialog(null, e.getMessage(), "Erro SQL", JOptionPane.ERROR_MESSAGE);
}
return listaVeiculos;
}
Minha classe Veiculo:
[code]public class Veiculo {
//Aqui tenho vários atributos
public StatusVeiculo statusVeiculo;
public StatusVeiculo getStatusVeiculo() {
return statusVeiculo;
}
public void setStatusVeiculo(StatusVeiculo statusVeiculo) {
this.statusVeiculo = statusVeiculo;
}
//Aqui tenho meus demais get e set
}
[/code]
Espero que tenham entendido e possam me ajudar!
T+