Static Method?

7 respostas
M

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!!

7 Respostas

thiago_spdvr

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.

M

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!
=/

thiago_spdvr

O form2 é chamado do seu form1 ?
O seu segundo form não poderia ser um JDialog ?

M

Sim poderia! mas oq mudaria se fosse uma jdialog invez de um jframe! se o problema esta em atualizar um jcombobox!

renamed

eu fiz assim...

Tela 1:
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();
	}
	

}
Tela 2
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();
	}
    
    
}

Era isso q vc tinha pedido? hehehe

thiago_spdvr

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 ??

renamed

thiago_spdvr:

renamed

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 ??

O que eu fiz foi apenas um rascunho, o resto ele pode fazer.

Criado 28 de outubro de 2009
Ultima resposta 29 de out. de 2009
Respostas 7
Participantes 3