Dúvida no Jtable

7 respostas
nois_159

Bom dia!!
uma Dúvida que obtive aqui implementando um programa meu de cadastro… tipo, por um acaso, eu listando um grupo (ex: grupo - “curso: Sistemas”) todos os alunos aparecem listados, certo?.. bom… minha dúvida e curiosidade, se por um acaso, eu quisesse alterar esse aluno ou excluir ele, teria como tipo, selecionar esse aluno desse curso pela lista (Jtable), e ele aparecer um campo para que eu queira alterar os dados desse aluno ou até mesmo exclui-lo??

acho que consegui meio que explicar minha curiosidade…

bom… muito obrigado pela atenção!! tenham um ótimo dia!!!

7 Respostas

G

Olá.

Não sei se entendi bem, mas vamos lá…

Coloque um trecho de código parecido com este no evento mousePressed da sua JTable

int linha = jTable1.getSelectedRow();

// passando o dado da primeira coluna da tabela (coluna zero)
    // para txtCodigo, e assim sucessivamente
     String codigo = jTable1.getModel().getValueAt(linha, 0).toString();
     txtCodigo.setText(codigo);

     String nome = jTable1.getModel().getValueAt(linha, 1).toString();
     txtNome.setText(nome);

     String vagas = jTable1.getModel().getValueAt(linha, 2).toString();
     txtVagas.setText(vagas);

     String alvo = jTable1.getModel().getValueAt(linha, 3).toString();
     txtAlvo.setText(alvo);

     String objetivo = jTable1.getModel().getValueAt(linha, 4).toString();
     txtObjetivo.setText(objetivo);

Quando quiser fazer a deleção, é só passar o conteúdo da String codigo para seu comando sql DELETE.

Espero que isso ajude.
[]´s

nois_159

gui-jac…

Valeu mesmo cara… me ajudou muito mesmo… precisava mesmo ter uma noção como faria…
apesar… que fiz uma coisa coisa meio diferente…
quando terminar esse meu projetinho aqui … vou postar aqui pro pessoal dar uma olhada e dar uma dicar conselho… ou algo do tipo…
rsrsrsr

muito obrigado… e tenha uma ótima tarde!!!

ViniGodoy

Basta pedir para seu model excluir a linha:

seuModel.excluir(aluno);

O importante é NUNCA, JAMAIS, EM HIPÓTESE ALGUMA usar o DefaultTableModel. Tentar usar o JTable com ele é suicídio. Dá muito trabalho, gera um código confuso, complicado, e provavelmente com bugs.

Outra coisa… você dificilmente usará o método getValueAt diretamente, como o colega acima fez.

G

ViniGodoy:
Basta pedir para seu model excluir a linha:

seuModel.excluir(aluno);

O importante é NUNCA, JAMAIS, EM HIPÓTESE ALGUMA usar o DefaultTableModel. Tentar usar o JTable com ele é suicídio. Dá muito trabalho, gera um código confuso, complicado, e provavelmente com bugs.

Outra coisa… você dificilmente usará o método getValueAt diretamente, como o colega acima fez.

Olá ViniGodoy.
Então, no caso assumi que ele está querendo fazer uma exclusão do banco, por isto não dei a idéia de excluir do modelo.

Então, vou ser sincero, utilizo DefaultTableModel e nunca tive problemas com ele. Pra ser honesto, JTable é um “componentezinho encardido” mesmo ( na minha opinião ).Se tiver usando Eclipse então…vixi…Mas no NetBeans, e criei algumas adaptações ( pelo menos para mim funciona ), que fica mais tranquilo manipular a JTable.Mas aí aquela máxima né!? Cada caso é um caso.
[]´s

ViniGodoy

Não há exceção. Usar o DefaultTableModel é sempre uma péssima alternativa. Das mais péssimas possíveis.
É o que torna a manipulação do seu JTable encardida.

Ele:

  1. Duplica dados, o que ocupa tanto memória, quanto processamento;
  2. Exige casts: O que torna o seu código inseguro;
  3. Não trabalha com classes de negócio;
  4. Move parte da lógica de negócio para a view.

Em resumo, é uma péssima opção em todos os sentidos. Eu recomendo que você aprenda a usar o JTable corretamente o mais rápido possível, e livre-se o quanto antes do DefaultTableModel. Essa recomendação não está na minha assinatura e não é dada por tantos usuários do fórum à toa.

Os links da minha assinatura mostram como. Uma vez que você aprenda como o TableModel funciona, você nunca mais vai querer chegar perto do Default.

G

ViniGodoy:
Não há exceção. Usar o DefaultTableModel é sempre uma péssima alternativa. Das mais péssimas possíveis.
É o que torna a manipulação do seu JTable encardida.

Ele:

  1. Duplica dados, o que ocupa tanto memória, quanto processamento;
  2. Exige casts: O que torna o seu código inseguro;
  3. Não trabalha com classes de negócio;
  4. Move parte da lógica de negócio para a view.

Em resumo, é uma péssima opção em todos os sentidos. Eu recomendo que você aprenda a usar o JTable corretamente o mais rápido possível, e livre-se o quanto antes do DefaultTableModel. Essa recomendação não está na minha assinatura e não é dada por tantos usuários do fórum à toa.

Os links da minha assinatura mostram como. Uma vez que você aprenda como o TableModel funciona, você nunca mais vai querer chegar perto do Default.

OK.

nois_159

Nossa… tenho muito a agradecer por estarem me informando desses detalhes…

bom, como gui-jac fez meio que por cima… e o ViniGodoy logo recomendou sobre o método getValueAt…
é isso que estou fazendo mesmo… ele me abriu uma idéia massa… e estou passando aqui…
e consegui fazer bem da hora… mais… sempre acontece uns erros e outros…
no caso o excluir… estou deixando pro ultimo né… estou tentando geral a alteração do possível cadastro…
agora o meu “erro”, está que na hora que seleciono outro usuário ele na gera no campo onde coloquei para alterar…
vou tentar ser detalhista… mais me desculpe… não é o meu forte… mais…

gero o cadastro dos alunos… isso tá funfando bem…
por exemp: AAAA - Historia
BBBB - LETRAS
CCC - Sistemas

bom, esses foram os alunos cadastrados… correto?.. daí criei uma aba… onde lista esses alunos por curso… dentro do meu Jtable… com o Nome, curso, semestre, RGA
essa parte está rodando bem… funfando da hora…

ai vem a parte da alteração do aluno … no caso fiz quase o mesmo estilo do listar, tem a opção por por curso, dai aparece dentro do meu segundo Jtable, dai oque fiz de diferente, peguei a opção mauseClicked, para poder selecionar o aluno, daí fiz outro campus do lado onde pega essas informações nome, curso, semestre, rga … e dando a opção de alterar nela… mais aí que está… consegui fazer ele ir pra esse campus para alteração, mais se eu vou pra outro curso e seleciono novamente, ele fica como a primeira opção… quer dizer… na primeira posição da lista… … dai depois disso que iria ir no excluir aluno… mais primeiro quero resolver isso… hauahuahua

bom, se vcs quiserem os meus codigos eu passo… só que é muita coisa… Oo’…

Muito obrigado mesmo pela atenção!!

Criado 22 de setembro de 2010
Ultima resposta 22 de set. de 2010
Respostas 7
Participantes 3