Atualizando dados apartir do TableModel

12 respostas
Resplandes

Olá amigos preciso de uma ajuda, preciso entender como fazer para os dados de uma JTable que sofrer modificações possa ser alterados no banco de dados também, alguém tem um exemplo, um caminho que eu possa seguir ?

12 Respostas

Resplandes

Uma Luz ???

ViniGodoy

Pegue a lista que está dentro do model do seu JTable e envie para que seu DAO faça a atualização:

List<TipoDeDado> dados = seuModel.getList(); seuDaoDoTipoDeDado.update(dados);

Outra possibilidade é chamar o DAO sempre que o método setValueAt for chamado com sucesso.

Resplandes

Blz Vini e assim atualizando a Lista deu certo mas caso eu queira atualizar cada objeto utilizando o método

setValueAt como poderia fazer Lembrando que estou utilizando o Projeto Towel para manipulação dos meus tablemodel

Resplandes

Vini e se por um acaso eu inserir uma linha na table e não preencher como poderia fazer para não salvar essa linha, assim meu banco de dados não ficaria com um registro vazio

ErickRAR

Faça uma validação antes de enviar para o banco ou coloque a coluna no banco como not null.
Na tabela você pode alterar a cor daquela linha para o usuário saber que é uma linha inválida

Resplandes

a Duvida é realmente como mudar a cor da linha que não estiver preenchida e como validar o objeto da lista que estiver com alguns atributos nulos rsrs

ErickRAR

Mudar cor de linhas de JTable é uma das coisas que mais tem aqui no GUJ.

Resplandes

Se eu identificar a linha que não esta totalmente preenchida blz a cor da linha eu mudo mas o problema como falado acima é como saber se a linha esta realmente preenchida ou não.

ErickRAR
Ator ator = tabela.pegarObjetoDaLinha(3);
boolean linhaInvalida=false;
String mensagemErro="";
if(ator.getNome() == null || ator.getNome().trim().equals(""){
mensagemErro="Nome inválido.";
linhaInvalida=true;
}
if(ator.maisFodaQue(BRUCE_LEE)==true){
mensagemErro+="Não nesse mundo.";
linhaInvalida=true;
}

if(linhaInvalida){
 tabela.preencherLinhaComErro(3,mensagemErro);
}
Resplandes

Mas ai vc ja identificou a linda que não esta preenchida

Ator ator = tabela.pegarObjetoDaLinha(3);  
boolean linhaInvalida=false;  
String mensagemErro="";  
if(ator.getNome() == null || ator.getNome().trim().equals(""){  
mensagemErro="Nome inválido.";  
linhaInvalida=true;  
}  
if(ator.maisFodaQue(BRUCE_LEE)==true){  
mensagemErro+="Não nesse mundo.";  
linhaInvalida=true;  
}  
  
if(linhaInvalida){  
tabela.preencherLinhaComErro(3,mensagemErro);  
}

como disse preciso saber quais as linhas não estão preenchida para depois fazer esse processo de validação.

ErickRAR

Pega a tabela > cria uma nova linha/seleciona uma linha já existente > edita a linha.
Como você quer saber que o usuário não vai mais editar essa linha? Quando clicar em um botão “ok”? Quando perder o focus da linha e for para outra? Whatever, só você nesse momento (quando o usuário acabar de editar a linha) validar se os campos foram preenchidos corretamente.

Resplandes

Certo a validação pode e deve ser feita quando o usuario partir para uma proxima linha ou cliclar no botão OK, caso do botão ok a linha estara selecionada no caso de perder o foco teria que utilizar o metodo

getValueAt correto ?

Criado 1 de abril de 2014
Ultima resposta 3 de abr. de 2014
Respostas 12
Participantes 3