[RESOLVIDO] Problema com jComboBox

7 respostas Resolvido
L

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;
    }    
}

7 Respostas

L

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

rodriguesabner

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

L

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

rodriguesabner

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

L

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

rodriguesabner
Solucao aceita

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.

L

Resolvido amigo, muito obrigado!

Criado 18 de julho de 2019
Ultima resposta 19 de jul. de 2019
Respostas 7
Participantes 2