JcomBOBOx

Diz ae pessoas…
to com uma duvida em uma implementacao, eu tenho um jcombobox(estado civil) que carrega os dados do meu banco atravez do .setModel, e do lado dele tenho um jbutton que abre uma pequena tela de cadastro que no caso cadastra um novo estado civil… nessa telinha ele faz o cadastro certinhu, manda pro banco com sucesso mas quando fexo a janelinha do registro e volto pra tela onde esta o jcombobox com os itens cadastrados, nao aparece o que eu acabei de cadastrar obviamente!!!, como faco para atualizar meu combobox dinamicamente? obrigado pessoal pela atencao!

Refaça o seu model e reassocie para a ComboBox.

Eu fiquei te devendo a combo com filtro, não? Desculpe, não tive tempo de mexer lá no projeto. Assim que tiver, te mando.

Certo refazer e setar a combo atualizada mas aonde chamo esse evento pq a insersao ocorre na telaB e a combobox esta na telaA, em que evento da minha telaA chamo a atualizacao da combo? aonde eh mais trivial usar isso para na carregar muitas chamadas!

e sobre ao autocomplete, continuo no aguardo.

chamar o metodo no evento windowactivad e uma boa maneira de resolver esse problema?

Nenhuma das telas é modal?

Se não forem, aí sim, vc vai ter que fazer a tela A registrar um listener na B para saber que ela fechou.

as janelas nao sao modais!

  1. para ser modal tem q ser jdialog invez de jframe?
  2. se sim, quais telas devem ser jdialog? tela de cadastro? tela de pesquisa?
  3. se sim, quais telas NAO devem ser jdialog? vendas? inicial ?

thanks!

  1. Sim.
  2. A vantagem da janela modal é que o método setVisible() trava, e não é liberado até que a janela seja fechada. Portanto, ela é ideal para janelas que perguntam informações, e que portanto devem permanecer abertas até que sejam fechadas. É o caso da janela de cadastro que você citou, por exemplo, onde você manda o seu usuário incluir alguns dados, que serão depois “transportados” para a tela debaixo. Se é esse o caso, use JDialog.
  3. Tudo que não tiver o comportamento descrito acima, vira JFrame.

tentei isso mas n deu certo

nomesB = controlB.buscaTodosOsBancos();
            jcb_nomeB.setModel(new DefaultComboBoxModel(nomesB.toArray(new BankingBean[0])));
            jcb_nomeB.doLayout();

ele n atualiza! oq ta faltando fazer?

tentei jcombobox.repaint(); tambem e nao foi!

tentei fazer assim tb e veja soh

try {
            nomesB = controlB.buscaTodosOsBancos();
            System.out.println("nomes = "+nomesB);
            jcb_nomeB.setModel(new DefaultComboBoxModel(nomesB.toArray(new BankingBean[0])));
            jcb_nomeB.revalidate();
            jcb_nomeB.doLayout();
            jcb_nomeB.repaint();
            System.out.println("Recarregou-se");
        } catch (Exception ex) {
            ex.printStackTrace();
        }

ele me retorna nomesB = a lista desatualizada! o buscaTodosOsBancos ta trazendo a lista desatualizada! se eu fexar e abrir o form ele atualiza!

Basicamente você tem que cadastrar no banco o novo tipo de estado e depois faz uma consulta e pega os novos dados. Logo após vc chama o método box.setModel(new DefaultComboBoxModel([aqui vc põe os novos dados]));

E nao estou fazendo isso ?

nomesB = controlB.buscaTodosOsBancos();   
System.out.println("nomes = "+nomesB);   
jcb_nomeB.setModel(new DefaultComboBoxModel(nomesB.toArray(new BankingBean[0])));