Eu estou sem o código completo aqui, mas é assim:
public class TelaPrincipal extends JFrame
//implementa os listeners que preciso com implements...
{
/*
*Defino diversas variáveis, como JButtons, JPanels, JLabels etc...
*/
public JComboBox combo;
/*
*No construtot mesmo, minha janela é criada
*/
public TelaPrincipal()
{
/*
*Defino as variáveis, como botao = new JButton("texto"); e etc...
*/
combo = this.populaCombo();
/*
*Aqui continuo a criar a janela e mostro ela
*/
}
//varios métodos que tratam os eventos
public JComboBox populaCombo ()
{
JComboBox auxiliar;
/*
*Acesso o banco, guardo os resultados em um resultset,
*colocos esses resultados em um array X, e ordena X
*/
auxiliar = new JComboBox(X);
return auxiliar
}
}
Esse trecho funciona, o combo aparece populado certinho.
O problema é quando atualizo no banco a tabela que popula o combo na janela auxiliar
No mesmo esquema que a tela principal, crio uma classe que extends JFrame, crio as variaveis dela e mostro ela.
Nessa tela, cadastro novos itens na lista que popula o combo da janela principal.
Essa nova janela recebe como parametro a janela anterior (na janela principal, quando chamo a nova janela, passo um this como argumento).
Nessa nova janela existe um botao salvar, que registra o novo item no banco, atualiza o combo da janela anterior e ja fecha a janela, voltando o foco para a janela anterior.
Abaixo coloquei o trecho que trata o evento do botão salvar.
//o nome do método é o que trata ActionListener
{
//trata a inserção no BD
/*
*a janela anterior está em uma variável chamada ant
*/
ant.combo = ant.populaCombo();
this.dispose();
}
Assim não funciona, o combo não muda…
Mas do jeito que coloco depois, funciona:
//o nome do método é o que trata ActionListener
{
//trata a inserção no BD
/*
*a janela anterior está em uma variável chamada ant
*/
ant.combo.addElement(elemento);
/*
*se não me engano é assim o nome do método que adiciona um
*elemento no combo. elemento é o mesmo que adicionei no BD
*/
this.dispose();
}
Desse último jeito funciona, porém, o elemento que adicionei fica no final do combo, deixando os elementos fora de ordem.
Se puderem me ajudar…
Valew