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 ?
Atualizando dados apartir do TableModel
12 Respostas
Uma Luz ???
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.
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
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
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
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
Mudar cor de linhas de JTable é uma das coisas que mais tem aqui no GUJ.
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.
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);
}
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.
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.
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 ?