Eventos no ResultSet

Olá Pessoal!

O problema é o seguinte:
Estou criando uma classe extendida do JTextField, que vai me funcionar como um TDBEdit do Delphi: eu vou passar como propriedades um ResultSet e o índice de uma coluna, e o “JDBEdit”, nome da classe q eu montei, vai carregar automaticamente os dados daquele campo.

Só q aí vem o primeiro problema:

  • O ResultSet q criei, e q é setado como propriedade, está numa outra classe, um JFrame; porém, cada vez q eu eu mover o cursor no ResultSet, o texto dentro do JDBEdit deveria ser alterado ao correspondente automaticamente… Existe algum evento q cumpra essa tarefa, no ResultSet, ou seja, um evento disparado qdo se move dentro de um ResultSet? E como poderia fazer q esse evento fosse “visível” no meu JDBEdit ?

Bem, aí vai o código “preliminar” da classe q estou criando… eu poderia setar o DataSet logo no método do contrutor, mas com isso o componente naum aparecia na IDE do Eclipse…

Qualquer sugestão e ajuda, será mto bem vinda!

Agradeço antecipadamente,
Elton

import javax.swing.JTextField;
import java.sql.*;

public class JDBEdit extends JTextField {
	private ResultSet res;
	private int column;
	
	public JDBEdit(){
		setText("null");
	}
	
	public void setColumn(int i){
		column=i;
	}
	
	public void setResultSet(ResultSet data) {
		try{
			res=data;
			setText(res.getString(column));
		}
		catch(SQLException e){
		}
	}
}

Para instanciar um objeto da classe:

JDBEdit = new pkgOrcamento.JDBEdit();
// res é um ResultSet no JFrame, onde todas as alterações serão feitas
JDBEdit.setResultSet(res);

Vc precisa criar se ResultSet navegavel, e controlar a navegação com eventos do teclado navegando por ele.
Mas isso não é o ideal, melhor seria vc jogar seu rs em um collection e depois passa-la p/ sua tela trabalhar com ela.

[]'s

Fala Cara!

Então. acabei não entendendo mto bem a sua solução, pq o usuário navegaria pelo ResultSet através de um JTable sensível a navegação e por um objeto com botões avançar, voltar, primeiro e último registro, e um refresh para atualizar os dados do Result para o BD.

O ResultSet está navegável.

Não existe um evento do mesmo q perceba a movimentação dos registros?

Mais uma vez obrigado!

[]'s

Elton

Na verdade vc tem que controlar isso na mão.
Colocar no metodo de eventos do teclado(KeyLIstener alguma coisa) e controlar, quando o cara tecla seta p/ cima vc navega uma posicao p/ traz no rs e assim por diante.Quanto a atualizar, vc tem que cuidar, porque alterar um rs em memoria é um pouco complicado, depende do banco e do drive.Eu ja passei um trabalho fazendo isso num bd Access, vivia estourando dll’s.O melhor seria vc trabalhar com collections.Outra coisa, vc tem que garantir que sua tabela esta locada, no caso de dois usuarios estiverem alterando dados ao mesmo tempo.

[]'s