Erro ao tentar atualizar JComboBox

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!

A variável cbTipoLista não foi inicializada.

cbTipoLista não é uma variável, é o JComboBox que carrega as informações do BD.
Resolvi com algumas “gambiarras”.
1º) Exclui as linhas

if(cbTipoLista.getSelectedItem().equals("Selecione")){
        }else{
            ...
        }

2º) Inclui a seguinte linha

private void AtualizarCBTipoLista(){
        String sql = "select * from tipos order by tipo";
        ConexaoBD con = new ConexaoBD();
        **cbTipoLista.setSelectedIndex(-1);**
        cbTipoLista.removeAllItems();
        cbTipoLista.addItem("Selecione");
        ...
}

E resolvi o problema!
Quem quiser conferir, o programa está disponível para baixar gratuitamente em meu site http://rolipam.000webhostapp.com
Valeu!

É uma variável de instância, do tipo JComboBox.

1 curtida