Pessoal to com um pequeno probleminha, tenho 2 formularios 1 e 2 ,
no formulario 1 tenho um jcombobox! no formulario 2 eu insiro um item ao banco de dados que alimenta o jcombobox1!quando eu fexo o formulario2 com o item inserido ja no banco eu precisava recarregar o jcombobox para atualizar com o dado que inseri no banco, eu sei atualiza o jcombobox , mas meu problema esta sendo aonde inserir o metodo atualizacombobox(); no construtor n da!! ele nao atualiza eu tentei colocar no windowActivated ele ate atualiza mas por questao de logicas do meu sistema preciso tirar o metodo de la! qual seria a solucao ? criar um metodo estatico? obrigado por sua atencao!!
tenta chamar o metodo de atualização no evento actionPerformed da combo, ai vai atualizar quando alguem clicar na combo, ou então quando vc fechar o formulario 2 vc da um setVisible(false) nesse formulario, ai vc chama um metodo pra atualizar a combo do form1, depois da atualização da combo vc da um dispose() no form2.
Amigo tentei colocar o metodo dde atualizar o combo no actionperformed do combo mas n aconteceu nada, nao funcionou! ele nao xama o metodo dentro do action!
=/
O form2 é chamado do seu form1 ?
O seu segundo form não poderia ser um JDialog ?
Sim poderia! mas oq mudaria se fosse uma jdialog invez de um jframe! se o problema esta em atualizar um jcombobox!
eu fiz assim…
Tela 1:
[code]public class Tela1 extends JFrame implements ActionListener{
private JComboBox combo = new JComboBox();
private JButton botao = new JButton(“Cadastrar novo item”);
public Tela1(){
getContentPane().add(combo);
getContentPane().add(botao);
setLayout(null);
setBounds(10, 10, 300, 300);
this.povoaCombo();
combo.setBounds(10, 10, 200, 30);
botao.setBounds(10, 50, 200, 30);
botao.addActionListener(this);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setVisible(true);
}
public JComboBox getCombo(){
return this.combo;
}
private void povoaCombo(){
/**
* Aqui você codificará como sua combo será povoada
*/
combo.addItem("Uma coisa");
combo.addItem("Outra coisa");
}
public void actionPerformed(ActionEvent e){
if (e.getSource() == botao){
setVisible(false);
new Tela2(this);
}
}
public static void main(String[] a){
new Tela1();
}
}[/code]
Tela 2
[code]public class Tela2 extends JFrame {
private JTextField texto = new JTextField();
private JButton botao = new JButton("Cadastrar");
private JFrame caller = null;
public Tela2(final JFrame caller){
this.caller = caller;
getContentPane().add(texto);
getContentPane().add(botao);
setLayout(null);
setBounds(10, 10, 300, 300);
texto.setBounds(10, 10, 200, 30);
botao.setBounds(10, 50, 200, 30);
botao.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
((Tela1)caller).getCombo().addItem(texto.getText());
cadastraNovoItem(texto.getText());
dispose();
}
});
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setVisible(true);
}
public void cadastraNovoItem(String item){
/**
* Aqui você cadastra o novo item inserido no BD
*/
}
public void dispose(){
caller.setVisible(true);
super.dispose();
}
}[/code]
Era isso q vc tinha pedido? hehehe
Só uma duvida, se houver algum problema na inclusão do dado, a combo vai adicionar a opção mesmo não tendo ela no banco ??
[quote=thiago_spdvr][quote]
renamed
[/quote]
Só uma duvida, se houver algum problema na inclusão do dado, a combo vai adicionar a opção mesmo não tendo ela no banco ??[/quote]
O que eu fiz foi apenas um rascunho, o resto ele pode fazer.