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!
- para ser modal tem q ser jdialog invez de jframe?
- se sim, quais telas devem ser jdialog? tela de cadastro? tela de pesquisa?
- se sim, quais telas NAO devem ser jdialog? vendas? inicial ?
thanks!
- Sim.
- 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.
- 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])));