Preenchimento de uma JComboBox dependendo da seleção de outra JComboBox

Estou Conseguindo Preencher JComboBox, mas na hora que mudo o item selecionado na JComboBox apresenta este erro:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "Object.toString()" because the return value of "javax.swing.JComboBox.getSelectedItem()" is null
	at visao.frmEmpresa.jcbCidadeItemStateChanged(frmEmpresa.java:772)
	at visao.frmEmpresa$3.itemStateChanged(frmEmpresa.java:268)
	at java.desktop/javax.swing.JComboBox.fireItemStateChanged(JComboBox.java:1257)
	at java.desktop/javax.swing.JComboBox.selectedItemChanged(JComboBox.java:1309)
	at java.desktop/javax.swing.JComboBox.contentsChanged(JComboBox.java:1365)
	at java.desktop/javax.swing.JComboBox.intervalRemoved(JComboBox.java:1387)
	at java.desktop/javax.swing.AbstractListModel.fireIntervalRemoved(AbstractListModel.java:188)
	at java.desktop/javax.swing.DefaultComboBoxModel.removeAllElements(DefaultComboBoxModel.java:175)
	at java.desktop/javax.swing.JComboBox.removeAllItems(JComboBox.java:801)
	at visao.frmEmpresa.jcbEstadoItemStateChanged(frmEmpresa.java:763)
	at visao.frmEmpresa$2.itemStateChanged(frmEmpresa.java:156)
	at java.desktop/javax.swing.JComboBox.fireItemStateChanged(JComboBox.java:1257)
	at java.desktop/javax.swing.JComboBox.selectedItemChanged(JComboBox.java:1309)
	at java.desktop/javax.swing.JComboBox.contentsChanged(JComboBox.java:1365)
	at java.desktop/javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:127)
	at java.desktop/javax.swing.DefaultComboBoxModel.setSelectedItem(DefaultComboBoxModel.java:94)
	at java.desktop/javax.swing.JComboBox.setSelectedItem(JComboBox.java:609)
	at java.desktop/javax.swing.JComboBox.setSelectedIndex(JComboBox.java:654)
	at java.desktop/javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(BasicComboPopup.java:946)
	at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:298)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6620)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3398)
	at java.desktop/javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(BasicComboPopup.java:551)
	at java.desktop/java.awt.Component.processEvent(Component.java:6385)
	at java.desktop/java.awt.Container.processEvent(Container.java:2266)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4995)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4827)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4827)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:98)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Como estar o preenchimento delas

private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  
        // Evento para preencher o jcombox estado com registros no banco
        jcbEstado.addItem("Selecione Um Estado");
        try {
            EstadoDao dao = new EstadoDao();
            java.util.List<Estado> lista = dao.listarEstados();
            for (Estado estado : lista) {
                jcbEstado.addItem(estado.toString());
            }
        } catch (Exception e) {

        }
    }                                 

    private void jcbEstadoItemStateChanged(java.awt.event.ItemEvent evt) {                                           
        // Evento para pegar o item selecionado no jcombox e pegar seu codigo de registro
        auxestado = jcbEstado.getSelectedItem().toString();
        EstadoDao dao = new EstadoDao();
        Estado obj = new Estado();
        obj = dao.buscarcodigoestado(auxestado);
        jtfCodEstado.setText(Integer.toString(obj.getCodigo()));
        jtfUf.setText(obj.getUf());        
        CidadeDao daoc = new CidadeDao();
        String uf = jtfUf.getText();
        java.util.List<Cidade> listadecidades = daoc.buscarCidadePeloUf(uf);
        jcbCidade.removeAllItems();

        for (Cidade cid : listadecidades) {
            jcbCidade.addItem(cid.toString());                        
        }
    }                                          

    private void jcbCidadeItemStateChanged(java.awt.event.ItemEvent evt) {                                           
        // Evento para pegar o item selecionado no jcombox e pegar seu codigo de registro
        String a = jcbCidade.getSelectedItem().toString();
        CidadeDao dao = new CidadeDao();
        Cidade obj = new Cidade();
        obj = dao.buscarcodigocidade(a);
        jtfCodCidade.setText(Integer.toString(obj.getCodigo()));
    }