Fala aí Galera do GUJ!
Estou com o seguinte problema relatado abaixo.
Erro ao Atualizar JComboBox após evento disparado pelo método btTipoActionPerformed
java.lang.NullPointerException
**at MyShelf.cbTipoListaActionPerformed(MyShelf.java:532)**
at MyShelf.access$100(MyShelf.java:15)
at MyShelf$3.actionPerformed(MyShelf.java:150)
at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1258)
at javax.swing.JComboBox.contentsChanged(JComboBox.java:1332)
at javax.swing.JComboBox.intervalRemoved(JComboBox.java:1352)
at javax.swing.AbstractListModel.fireIntervalRemoved(AbstractListModel.java:179)
at javax.swing.DefaultComboBoxModel.removeAllElements(DefaultComboBoxModel.java:174)
at javax.swing.JComboBox.removeAllItems(JComboBox.java:771)
**at MyShelf.AtualizarCBTipoLista(MyShelf.java:556)**
** at MyShelf.btTipoActionPerformed(MyShelf.java:546)**
at MyShelf.access$200(MyShelf.java:15)
at MyShelf$4.actionPerformed(MyShelf.java:172)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2237)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2295)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
at java.awt.Container.dispatchEventImpl(Container.java:2281)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
CONSTRUÍDO COM SUCESSO (tempo total: 51 segundos)
Linha 532
private void cbTipoListaActionPerformed(java.awt.event.ActionEvent evt) {
**if(cbTipoLista.getSelectedItem().equals("Selecione"))**{
}else{
AtualizarTBLista();
}
}
Linha 546
private void btTipoActionPerformed(java.awt.event.ActionEvent evt) {
ShelfBean sb = new ShelfBean();
ShelfControl sc = new ShelfControl();
sb.setTipo(tfTipo.getText());
sc.incluirTipo(sb);
AtualizarCBTipo();
tfTipo.setText("");
**AtualizarCBTipoLista();**
}
Linha 556
public void AtualizarCBTipoLista(){
String sql = "select * from tipos order by tipo";
ConexaoBD con = new ConexaoBD();
try{
con.conecta();
con.executeSQL(sql);
**cbTipoLista.removeAllItems(); // Dá Erro Aqui! O JComboBox fica vazio, não Atualiza.**
cbTipoLista.addItem("Selecione");
while(con.rs.next()){
cbTipoLista.addItem(con.rs.getString("tipo"));
}
}catch(Exception e){
e.printStackTrace();
}finally{
con.desconecta();
}
}
O mesmo erro NÃO ocorre nos métodos abaixo
private void AtualizarCBTipo(){
String sql = "select * from tipos order by tipo";
ConexaoBD con = new ConexaoBD();
**cbTipo.removeAllItems();**
cbTipo.addItem("Selecione");
try{
con.conecta();
con.executeSQL(sql);
while(con.rs.next()){
cbTipo.addItem(con.rs.getString("tipo"));
}
}catch(Exception e){
e.printStackTrace();
}finally{
con.desconecta();
}
}
private void AtualizarCBGenero(){
String sql = "select * from generos order by genero";
ConexaoBD con = new ConexaoBD();
**cbGenero.removeAllItems();**
cbGenero.addItem("Selecione");
try{
con.conecta();
con.executeSQL(sql);
while(con.rs.next()){
cbGenero.addItem(con.rs.getString("genero"));
}
}catch(Exception e){
e.printStackTrace();
}finally{
con.desconecta();
}
}
Esse último disparado pelo evento btGeneroActionPerformed
private void btGeneroActionPerformed(java.awt.event.ActionEvent evt) {
ShelfBean sb = new ShelfBean();
ShelfControl sc = new ShelfControl();
sb.setGenero(tfGenero.getText());
sc.incluirGenero(sb);
**AtualizarCBGenero();**
tfGenero.setText("");
}
Já tentei de tudo! Até tirar a linha que está dando erro, mas aí vem um problema, toda vez que atualiza o comboBox repete os itens da lista em uma nova lista, logo abaixo, e acrescenta o novo item no final. Preciso de ajuda, pois não estou conseguindo encontrar o problema sozinho! Valeu Galera!