Método de outra classe - acesso mas não executa

5 respostas Resolvido
java
CALERA

Boa tarde pessoal!!

Estou com um probleminha/dúvida aqui.

Estou tentando executar um método que atualiza uma combobox de outra classe, mas não está funcionando.

Este é o método da classe de onde preciso atualizar a combobox:

public void listarSetor() {
        jCBCadastrosColaboradoresSetor.removeAllItems();
        jCBCadastrosColaboradoresSetor.addItem("Selecione:");
        try {
            SetorDao dao = new SetorDao();

            List<Setor> listarSetor = dao.listaSetores();
            Iterator<Setor> it = listarSetor.iterator();

            while (it.hasNext()) {
                Setor set = it.next();
                jCBCadastrosColaboradoresSetor.addItem(set.getNomeSetor());
            }

            PainelBiometria pBio = new PainelBiometria();
            pBio.listaComboboxColaboradores();

        } catch (SQLException ex) {
            icon = new ImageIcon(getClass().getResource("/source/error.png"));
            JOptionPane.showMessageDialog(this, "Não foi possível listar o(s) Setor(es) devido o erro abaixo.\nErro: " + ex, " VERUM - Mensagem:", 0, icon);
        }
    }

E acesso assim para atualizar a combobox da outra classe:

public void sair() {
        PainelColaboradores pCol = new PainelColaboradores();
        pCol.listarSetor();
        pCol.setEnabled(true);

        this.dispose();
    }

Ou seja, quando eu fechasse esta tela, queria que a combobox da outra tela fosse atualizada e aí eu poderia selecionar a opção, mas não está atualizando.

O que estou fazendo de errado?

Alguém pode me ajudar aí??

Agradeço muitíssimo.

5 Respostas

L

Como você está obtendo a instância do combo nessa classe?

CALERA

Dentro do método sair. Instancio a outra tela ( PainelColaboradores pCol = new PainelColaboradores(); ) e aí tento executar o método daquela tela ( pCol.listarSetor(); ) que se refere à Combobox que quero atualizar quando eu fecho a tela de cadastro do setor. Tem outra, ou , uma maneira “correta” de fazer isso?? Obrigado!

L
Solucao aceita

Realmente a forma que você está fazendo acaba criando uma nova instância toda vez que você sair e isso não seria o ideal, você pode criar uma instância só desse painel logo no main e através de outro método passá-la para essa classe…

Respondi um tópico com uma dúvida parecida a sua aqui nele informo um link com uma solução…

M

tive o mesmo problema e só consegui resolver meu problema depois que encontrei esse site :point_down: veja ai man
nao tem erro! boa sorte http://javaerro.blogspot.com.br/2010/10/algumas-vezes-e-necessario-realizar-uma.html

CALERA

LostSoldier, desculpa demora para responder, eu fiquei fora do desenvolvimento por um tempo…
Mas agradeço, era isto mesmo que eu precisava. funcionou perfeitamente. OBRIGADO!!!

Criado 7 de abril de 2016
Ultima resposta 23 de jun. de 2016
Respostas 5
Participantes 3