Ola pessoal, me registrei hoje no fórum. To iniciando em java e to fazendo um programa que cadastra roupas: código, descrição e preco. Ai a medida que vai cadastrando ele vai fazendo a soma do preço e nao pode haver 2 roupas com o mesmo código. Aí estao o comando do Botão “Adicionar”:
String descricao = jTextField2.getText();
if(descricao.equals("")){
JOptionPane.showMessageDialog(null, "Informe a descrição:");
}
int codigo = Integer.parseInt(jTextField1.getText());
preco = Double.parseDouble(jTextField3.getText());
precototal += preco;
cadaroupa x = new cadaroupa();
x.setCodigo(codigo);
x.setDescricao(descricao);
x.setPreco(preco);
x.setPrecototal(precototal);
Vendas.addElement(x);
jLabel4.setText( Double.toString(x.getPrecototal()));
}
Minha primeira pergunta é que quando adiciono ao Jlist, ele ta adicionando uns caracteres bizarros, eu sei que preciso formatar o String.format dentro da classe “cadaroupa”. Mas nao sei como fazer isso, alguém tem idéia?
Minha outra pergunta é como faço pra vasculhar dentro do Jlist1 a procura do código pra ver se ja foi cadastrado ou nao?
Para melhorar a formatação da string gerada pela classe CadRoupa, você deve implementar o método toString().
Se você tornar sua classe comparável pelo código, ou implementar um comparador por código, pode usar um TreeSet no lugar de um JList. Isso impedirá elementos duplicados. Se você insistir no list, faça a busca com um for (não creio que haja uma maneira muito mais eficiente com uma lista desordenada):
boolean existe = false;
for (cadaroupa roupa : Vendas) {
if (roupa.getCodigo() == codigo)
{
existe = true;
break;
}
}
Use as convenções de nome do java. Nome de classes devem ter iniciar por maiúsculas CadaRoupa, ao invés de cadaroupa. Nomes de variáveis começam com letra minúscula (vendas, ao invés de Vendas).
voce precisa implementa o metodo toString para retornar o valor correto e para descobrir se o codigo ja existi voce vai ter que varrer a list comparando os elementos (no caso o codigo).