primeiro estou tentanto implementar o arraylist. porem nao sei fazer e nao entendi pelo que pesquisei.
tenho a classe cliente com variaveis codigo,nome,telefone e email.
instanciei estas vars pela classe cadastros (via get e set)
agora gostaria de guardar os dados em um array.
Onde pesquisou que não entendeu? De modo geral, da mesma forma que você fez Cliente cliente = new Cliente(); e depois passou os dados, pode adicionar esse objeto Cliente em um List. Ex:
List<Cliente> listaDeClientes = new ArrayList<Cliente>();
Cliente umCliente = new Cliente();
umCliente.setCodigo("1");
umCliente.setNome("Soffner");
umCliente.setTelefone("+559911111111");
umCliente.setEmail("Soffner@usuariodoguj.com.br");
listaDeClientes.add(umCliente);
Tem um monte de vídeos, cursos e tutoriais por aí. Exemplos (após uma pesquisa rápida):
isso que nao entendo, nao quero adicionar um valor String padrao como exemplo dado.
gostaria de o array importasse o valor ja salvo nos objetos da classe cliente.
vou continuar buscando.
Os “valores String padrao” foram só um exemplo, você pode fazer exatamente como já está fazendo, pegando dos JTextField.
Você também parece estar confundindo inserir um objeto (instância de cliente) com inserir os valores de cada campo como String. Você não insere os atributos (id, nome, e-mail e telefone) independentemente, você cria um objeto cliente, passa os valores pro objeto, e insere esse objeto inteiro.
Ajustando seu código:
ArrayList<Cliente> clientes = new ArrayList<>();
Cliente cliente = new Cliente();
int cod = Integer.parseInt(txtCod.getText());
cliente.setCodigo(cod);
txtCod.setText("");
cliente.setNome(txtNome.getText());
txtNome.setText("");
cliente.setEmail(txtEmail.getText());
txtEmail.setText("");
cliente.setTelefone(txtTel.getText());
txtTel.setText("");
// Adiciona a instância cliente na lista de clientes.
clientes.add(cliente);
// Faz um loop na lista e imprime o nome de cada cliente.
for(Cliente c : clientes) {
System.out.println(c.getNome());
}
Note que
System.out.println(clientes);
Não faz o que você espera, que é exibir a lista. Você precisa de um loop, como mostrei acima.
Você marcou o tópico como resolvido. Ainda tem dúvidas ou não?
A linha que está dando erro é essa?
for (Cliente c : **clientes**) {
Se sim, esses asteriscos fazem parte do código que você tentou rodar? Pois eles não deveriam estar aí. Olhe como declarei o for no meu exemplo acima.
Eu não tenho como ficar testando aqui, mas testei meu código e ele rodou conforme esperado.
Outra coisa, você ainda está adicionando ao ArrayList coisas que não precisam (nem podem) estar lá, pois são de tipos incompatíveis. Se você declara seu ArrayList como de Cliente, não pode tentar adicionar uma String nele. Revise as seguintes linhas:
List<Cliente> clientes = new ArrayList<Cliente>(); //
clientes.add(code); // NÃO PRECISA DESSA LINHA, E O TIPO É INCOMPATÍVEL
clientes.add(name); // TAMBÉM NÃO PRECISA DESSA
clientes.add(mail); // TAMBÉM NÃO PRECISA DESSA
clientes.add(tel); // TAMBÉM NÃO PRECISA DESSA
// Dessa sim você precisa, pois adiciona o Objeto cliente ao ArrayList
clientes.add(cliente);
Ou seja, após ter um objeto Cliente devidamente preenchido, você só precisa adicioná-lo ao ArrayList, nada mais:
// Declara o ArrayList
List<Cliente> clientes = new ArrayList<Cliente>();
// Adiciona o cliente
clientes.add(cliente);