Suas dúvidas são bastante simples!
Posso te dar uma dica? Tenta encontrar algo antes de perguntar aqui no fórum, isso ajuda no seu aprendizado!
A classe ArrayList, do framework Collections é um como um array anabolizado.
A principal melhoria é que ele pode crescer dinamicamente e ele também implementa uma séria de mudanças que permite a classificação dos dados, busca e etc. É bem massa!
Bom, eu, no seu caso, criaria o objeto Cliente com todos os atributos necessários - id, nome, telefone, endereço, qualquer coisa.
Se você for fazer o programa para ser utilizado pelo console você pode capturar as entradas por meio de scanner ou então por meio da classe console.
Mas é legal você utilizar o JOptionpane, fica bem mais legal! Quando estudei Java básico ganhei um prêmio na escola porque desenvolvi um sisteminha parecido com esse só que todo com o JOptionpane.
Você instância o objeto cliente e acrescenta ele ao ArrayList, mais ou menos assim:
List<Cliente> listaDeClientes = new ArrayList();
//Captura todos os dados do cliente e armazena dentro do objeto cliente
listaDeClientes.add(cliente);
//Para acessar o Cliente você
listaDeClientes.get(ÍNDICE).getNome(); //Onde índice é a posição onde o cliente está armazenado na List
Te mostrei praticamente o caminho das pedras, agora você pesquisa mais um pouco e faz funcionar o programa!
Abrass,
PH