Pessoal tenho o seguinte codigo:
Vector linha = new Vector();
//declara e instancia um veiculo
Veiculos v = new Veiculos();
//configura os valores
v.setCodigo(Integer.parseInt(JTextoCodigo.getText()));
v.setPlaca(JTextoPlaca.getText());
v.setModelo(JTextoModelo.getText());
v.setMarca((String) ComboMarca.getSelectedItem());
v.setValorEmprestimo(Double.parseDouble(JTextoValor.getText()));
//insere na lista se nao existir
Repositorio.listVeiculos.add(v);
//declara e instancia um Vector, adciona-se as linhas
linha.add(v.getCodigo());
linha.add(v.getPlaca());
linha.add(v.getModelo());
linha.add(v.getMarca());
linha.add(v.getValorEmprestimo());
//Insere na tablea os valores de linha
Repositorio.tableModel.addRow(linha);
JOptionPane.showMessageDialog(null, "Cadastro efetuado com sucesso!");
dispose();
Bom vamos la, neste codigo eu instancio um objeto Veiculos, atribuo os valores dos textBox aos seus atributos e insiro em uma ArrayList chamada ListVeiculos.
A minha pergunta é como forçar ao programa a so inserir um veiculo na lista, se ele ja nao estiver cadastrado.
Tentei caminhando pela lista e comparando a placa do veiculo com o com o campo que eu escrevi, mais como é dentro de um for ele manda uma exceção (java.util.ConcurrentModificationException).
Alguem me da uma ideia?
Um HashSet não inclui quando o objeto já estiver na lista.
Porquê você está fazendo isso?
linha.add(v.getCodigo());
linha.add(v.getPlaca());
linha.add(v.getModelo());
linha.add(v.getMarca());
Se você quer fazer um for comparando as placas basta fazer:
[code] for(Veiculo c : linha)
{
if(v.getPlaca().equals(c.getPlaca()));
{
teste = true;
break;
}
}
if(teste != true)
{
linha.add(v);
}[/code]
Aeee. deu certo. o objeto linha é so pra eu adicionar na Jtable, o caso era percorrer na lsita comparando as placas. quando eu fiz de outra forma sem usar o teste e tals, dava aquele exceção, entao agora deu certo Muito Obrigado, vou colocar o codigo que ficou no final!
boolean teste = false;
//declara e instancia um veiculo
Veiculos v = new Veiculos();
//configura os valores
v.setCodigo(Integer.parseInt(JTextoCodigo.getText()));
v.setPlaca(JTextoPlaca.getText());
v.setModelo(JTextoModelo.getText());
v.setMarca((String) ComboMarca.getSelectedItem());
v.setValorEmprestimo(Double.parseDouble(JTextoValor.getText()));
for (Veiculos veic : Repositorio.listVeiculos) {
if (JTextoPlaca.getText().equals(veic.getPlaca()))
{
teste = true;
JOptionPane.showMessageDialog(null, "Veiculo ja cadastrado!");
break;
}
}
if (teste != true) {
Repositorio.listVeiculos.add(v);
Vector linha = new Vector();
linha.add(v.getCodigo());
linha.add(v.getPlaca());
linha.add(v.getModelo());
linha.add(v.getMarca());
linha.add(v.getValorEmprestimo());
//Insere na tablea os valores de linha
Repositorio.tableModel.addRow(linha);
JOptionPane.showMessageDialog(null, "Cadastro efetuado com sucesso!");
}
dispose();
}
Obrigado e até Mais!