[RESOLVIDO] Problema com jComboBox

Bom dia senhores.

Estou com um problema, a situação é a seguinte: tenho 3 jComboBox indicando uma localização, segue o código.

O código abaixo se refere à uma mudança que ao selecionar algo no primeiro ComboBox, ele deve fazer umas mudanças no segundo.

public void localizacao() {
    switch (cbund.getSelectedItem().toString()) {
        case "ENGENHO NOVO":
            cblocalizacao.removeAllItems();
            cblocaliza.removeAllItems();
            cblocalizacao.addItem("BLOCO A");
            cblocalizacao.addItem("BLOCO B");
            cblocalizacao.addItem("BLOCO C");
            cblocalizacao.addItem("BLOCO D");
            cblocaliza.setSelectedItem(null);
            break;
        case "CENTRO":
            cblocalizacao.removeAllItems();
            cblocaliza.removeAllItems();
            cblocalizacao.addItem("1º Andar");
            cblocalizacao.addItem("2º Andar");
            cblocalizacao.addItem("3º Andar");
            cblocalizacao.addItem("4º Andar");
            cblocalizacao.addItem("5º Andar");
            cblocalizacao.addItem("6º Andar");
            cblocalizacao.addItem("7º Andar");
            cblocalizacao.addItem("8º Andar");
            cblocalizacao.addItem("9º Andar");
            cblocalizacao.addItem("10º Andar");
            cblocalizacao.addItem("11º Andar");
            cblocalizacao.addItem("12º Andar");
            cblocalizacao.addItem("13º Andar");
            cblocalizacao.addItem("14º Andar");                         
            cblocaliza.setSelectedItem(null);
            break;            
    }
}

esse método é chamado em um evento ItemStateChanged.

Agora vem a segunda parte do código, que muda o terceiro combobox de acordo com o segundo, este é chamado também por um outro evento ItemStateChanged.

public void engenho() {
        switch (cblocalizacao.getSelectedItem().toString()) {
            case "BLOCO A":
                cblocaliza.addItem("A301");
                cblocaliza.addItem("A302");
                cblocaliza.addItem("A303");
                cblocaliza.addItem("A401");
                cblocaliza.addItem("A402");
                cblocaliza.addItem("Administração");
                cblocaliza.addItem("Central de Matrículas");
                cblocaliza.addItem("Secretaria Atendimento");
                cblocaliza.addItem("Secretaria Back Office");
                cblocaliza.addItem("Estúdio");
                cblocaliza.addItem("Brinquedoteca");
                cblocaliza.addItem("Sala de Artes");
                cblocaliza.addItem("Sala de Reunião 1");
                cblocaliza.addItem("Sala de Reunião 2");
                cblocaliza.addItem("Sala de Reunião 3");
                cblocaliza.addItem("Salão Nobre");
                break;
            case "BLOCO B":
                cblocaliza.addItem("B101");
                cblocaliza.addItem("B102");
                cblocaliza.addItem("Celso resolve");
                cblocaliza.addItem("Clínica de Fisioterapia");
                cblocaliza.addItem("Salão Escola");
                cblocaliza.addItem("CML");
                cblocaliza.addItem("Atendimento Financeiro");
                cblocaliza.addItem("Tesouraria");
                cblocaliza.addItem("Laboratório 1");
                cblocaliza.addItem("Laboratório 2");
                cblocaliza.addItem("Laboratório 3");
                cblocaliza.addItem("Laboratório 4");
                cblocaliza.addItem("Laboratório de Farmacia");
                cblocaliza.addItem("Laboratório de Física");
                cblocaliza.addItem("Laboratório de Química");
                cblocaliza.addItem("Ouvidoria");
                cblocaliza.addItem("TI Controle");
                cblocaliza.addItem("TI Depósito");
                break;
            case "BLOCO C":
                cblocaliza.addItem("C101");
                cblocaliza.addItem("C102");
                cblocaliza.addItem("C103");
                cblocaliza.addItem("C104");
                cblocaliza.addItem("C105");
                cblocaliza.addItem("C201");
                cblocaliza.addItem("C202");
                cblocaliza.addItem("C203");
                cblocaliza.addItem("CRT");
                cblocaliza.addItem("Laboratório de Estética");
                cblocaliza.addItem("Laboratório de Semiologia");
                cblocaliza.addItem("CPD");
                cblocaliza.addItem("SPA");
                break;
            case "BLOCO D":
                cblocaliza.addItem("D101");
                cblocaliza.addItem("D201");
                cblocaliza.addItem("D202");
                cblocaliza.addItem("D203");
                cblocaliza.addItem("D204");
                cblocaliza.addItem("D205");
                cblocaliza.addItem("D301");
                cblocaliza.addItem("D302");
                cblocaliza.addItem("D303");
                cblocaliza.addItem("D304");
                cblocaliza.addItem("D305");
                cblocaliza.addItem("D306");
                cblocaliza.addItem("D401");
                cblocaliza.addItem("D402");
                cblocaliza.addItem("D403");
                cblocaliza.addItem("D404");
                cblocaliza.addItem("D405");
                cblocaliza.addItem("D406");
                cblocaliza.addItem("D407");
                cblocaliza.addItem("D408");
                cblocaliza.addItem("D501");
                cblocaliza.addItem("D502");
                cblocaliza.addItem("D503");
                cblocaliza.addItem("D504");
                cblocaliza.addItem("D505");
                cblocaliza.addItem("D506");
                cblocaliza.addItem("D507");
                cblocaliza.addItem("D508");
                cblocaliza.addItem("D509");
                cblocaliza.addItem("D510");
                cblocaliza.addItem("D511");
                cblocaliza.addItem("D601");
                cblocaliza.addItem("D602");
                cblocaliza.addItem("D603");
                cblocaliza.addItem("D604");
                cblocaliza.addItem("D605");
                cblocaliza.addItem("D606");
                cblocaliza.addItem("D607");
                cblocaliza.addItem("D608");
                cblocaliza.addItem("Arquivo");
                cblocaliza.addItem("Biblioteca");
                cblocaliza.addItem("Clínica Escola");
                break;
        }
    }

    public void centro() {
        switch (cblocalizacao.getSelectedItem().toString()) {
            case "1º Andar":
                cblocaliza.addItem("Central de Matrículas");
                cblocaliza.addItem("Portaria");
                cblocaliza.addItem("Laboratório de Informática");
                break;
            case "2º Andar":
                cblocaliza.addItem("Biblioteca");
                break;
            case "3º Andar":
                cblocaliza.addItem("301");
                cblocaliza.addItem("302");
                break;
            case "4º Andar":
                cblocaliza.addItem("401");
                cblocaliza.addItem("402");
                break;
            case "5º Andar":
                cblocaliza.addItem("501");
                cblocaliza.addItem("502");
                break;
            case "6º Andar":
                cblocaliza.addItem("601");
                cblocaliza.addItem("602");
                break;
            case "7º Andar":
                cblocaliza.addItem("701");
                cblocaliza.addItem("702");
                break;
            case "8º Andar":
                cblocaliza.addItem("801");
                cblocaliza.addItem("802");
                break;
            case "9º Andar":
                cblocaliza.addItem("901");
                cblocaliza.addItem("902");
                break;
            case "10º Andar":
                cblocaliza.addItem("Obra");
                break;
            case "11º Andar":
                cblocaliza.addItem("Estoque");
                break;
            case "12º Andar":
                cblocaliza.addItem("Coordenadoria");
                break;
            case "13º Andar":
                cblocaliza.addItem("Escola de Artes");
                break;
            case "14º Andar":
                cblocaliza.addItem("Administração");
                break;
        }
    }

Código do Evento que muda do segundo pro terceiro:

private void cblocalizacaoItemStateChanged(java.awt.event.ItemEvent evt) {                                               
    cblocaliza.removeAllItems();
    switch(cbund.getSelectedItem().toString()){
        case "ENGENHO NOVO":
            engenho();
            break;
        case "CENTRO":
            centro();
            break;
    }    
}

O erro que ocorre ao mudar no cbund(primeiro jComboBox) é java.lang.NullExceptionPointer

Onde você colocou o método localização? Eu testei aqui e funcionou normal:

private void cbundItemStateChanged(ItemEvent evt) {                                       
     localizacao();
}




Perdão pelas imagens da área de trabalho toda, não to em casa, to sem o LightShot e tô com preguiça de usar o Paint kkkkk

Aí que está, funciona na primeira, agora testa mudar nesta mesma tela, la no CBund de “CENTRO” para “Engenho”

Eu testei as duas opções. Funcionou tranquilo!

Tudo bem, testa sem fechar a tela, muda do engenho pro centro.
Exemplo, clica no engenho, depois retorna pro centro, no meu está dando erro neste momento

Sim, realmente, fiz esses testes aqui. Como é algo que já está preenchido, vc pode por um try catch só pra “ignorar” o erro mesmo.

Ou só trazer resultados se o combo for != null.

Eu fiz com o trycatch mesmo:

public void centro() {
    try {
        switch ((String) cblocalizacao.getSelectedItem()) {
            case "1º Andar":
                cblocaliza.addItem("Central de Matrículas");
                cblocaliza.addItem("Portaria");
                cblocaliza.addItem("Laboratório de Informática");
                break;
            case "2º Andar":
                cblocaliza.addItem("Biblioteca");
                break;
            case "3º Andar":
                cblocaliza.addItem("301");
                cblocaliza.addItem("302");
                break;
            case "4º Andar":
                cblocaliza.addItem("401");
                cblocaliza.addItem("402");
                break;
            case "5º Andar":
                cblocaliza.addItem("501");
                cblocaliza.addItem("502");
                break;
            case "6º Andar":
                cblocaliza.addItem("601");
                cblocaliza.addItem("602");
                break;
            case "7º Andar":
                cblocaliza.addItem("701");
                cblocaliza.addItem("702");
                break;
            case "8º Andar":
                cblocaliza.addItem("801");
                cblocaliza.addItem("802");
                break;
            case "9º Andar":
                cblocaliza.addItem("901");
                cblocaliza.addItem("902");
                break;
            case "10º Andar":
                cblocaliza.addItem("Obra");
                break;
            case "11º Andar":
                cblocaliza.addItem("Estoque");
                break;
            case "12º Andar":
                cblocaliza.addItem("Coordenadoria");
                break;
            case "13º Andar":
                cblocaliza.addItem("Escola de Artes");
                break;
            case "14º Andar":
                cblocaliza.addItem("Administração");
                break;
        }
    } catch (Exception e) {
    }
}

Coloquei o trycatch nos métodos:

Localização, Engenho e Centro.

Resolvido amigo, muito obrigado!

1 curtida