Como não inserir valores repetidos na jtable[resolvido]

4 respostas
P
ola, gostaria de saber se há uma maneira de não inserir valores repetidos em uma jtable.Meu amigo me ensinou a controlar isso com um if e um for mas o problema é que funciona so para a 1 linha as outras se repetem varias vezes na jtable :/ o código do if é o seguinte:
if(model.getRowCount()==0)
						{
								model.addAluno(aluno);  
								aluno=new Aluno1(); 
								aluno.setDisciplina(resultadoDisciplina.getString(1));
								aluno.setModulo(resultadoModulo.getString(1));
						}
e logo após este if esta sendo feito este for
for(int i=0;i<model.getRowCount();i++)
						{
							if(!(model.getValueAt(i, 0).equals(resultadoDisciplina.getString(1)) && model.getValueAt(i, 1).equals(resultadoModulo.getString(1))))
							{
								model.addAluno(aluno);  
							}
							
						}
alguém pode ajudar me?! muito obrigada

4 Respostas

L

Acho que um while resolve teu problema.

V

Dentro do seu model vc tem uma lista de alunos, certo? Basta testar se o aluno já está lá com o método contains.

Se o seu model fornecer dados ordenados fica ainda mais fácil, basta usar dentro do model um TreeSet ao invés de um ArrayList.

Se você está usando o DefaultTableModel, prepara-se para ter bem mais trabalho e fazer um código muitíssimo mais ineficiente. Busque todos os ids, até encontrar um que seja igual ao do aluno sendo cadastrado. Quando for, vc sabe que o cara já está lá.

P

ola,
Luciano_Lopes
como ficaria este while?

ViniGodoy
não sei o que é TreeSet.Poderia explicar?
Estou usando meu proprio modelo de tabela.

Ah como posso dizer na minha tabela tipo aparece varias vezes as mesmas linhas
exemplo

rc disciplina modulo atividade atividade atividade
5 biologia 1 T
5 biologia 1 PcP
5 biologia 1 F

dai daquela forma que meu amigo me ensinou fica

disciplina modulo atividade atividade atividade
biologia 1 T PcP F

só o problema é que com as outras disciplinas não tah dando muito certoo :confused:
acontece que cada disciplina antes de ser inserida na tabela esta sendo comparada com as disciplinas que ja estao adicionadas na table daqui quando chega a vez do ultimo elemento ser inserido ele compara com todos os itens ja adicionados e insere tipo dai se tem portugues e matematica e eu vou inserir por ultimo ciencias ciencias aparece 2 vezes na tabela,tipo ve se é igual a port. não é insere,depois ve se é igual mat. não é insere…
como posso fazer para comparar todos os itens da tabela e depois inserir os elementos?
muito obrigada pela ajuda :slight_smile:

P

Meu amigo disse para eu implementar o seguinte no codigo

//antes do for boolean b=true; //dai dentro do if b=false; //ah e tirar o ! da condição do if //e por final if(b) { model.addAluno(aluno); }
e deu certooo agora ta funcionando!!!
obrigada pela ajuda :slight_smile:

Criado 26 de abril de 2011
Ultima resposta 28 de abr. de 2011
Respostas 4
Participantes 3