- Descrição
- Funcionalidades
- Tecnologias
- Requisitos
- Como Usar
- Estrutura do código
- Detalhes de Implementação
- Tratamento de Erros
- Melhorias Futuras
- Licença
- Contato
Este é um programa em Java que funciona como um conversor de moedas com interface gráfica simples, usando JOptionPane. Ele utiliza a API pública da ExchangeRate-API para consultar as taxas de câmbio reais e fazer conversões atualizadas de valores entre as moedas. A aplicação foi desenvolvida para ser simples, amigável e robusta, com tratamento de erros para entradas inválidas e problemas de comunicação com a API.
Menu gráfico com 6 opções de conversão entre as moedas:
- BRL (Real) <-> USD (Dólar)
- BRL (Real) <-> EUR (Euro)
- USD (Dólar) <-> BRL (Real)
- USD (Dólar) <-> EUR (Euro)
- EUR (Euro) <-> BRL (Real)
- EUR (Euro) <-> USD (Dólar)
Opção para sair do programa.
Entrada do usuário por caixas de diálogo (JOptionPane).
Validação da opção do menu e valor digitado.
Consulta dinâmica da taxa de câmbio via API ExchangeRate
Conversão do valor informado pelo usuário com exibição do resultado
Tratamento de erros com mensagens amigáveis para entradas inválidas e falhas na API
- Java SE 8+ (recomendado Java 11+)
- Biblioteca Gson para parsing de JSON (com.google.gson)
- API ExchangeRate (https://www.exchangerate-api.com/)
- Swing (JOptionPane) para interface gráfica simples
- Java JDK 8 ou superior instalado e configurado no PATH
- Acesso à internet para consumir a API ExchangeRate
- Biblioteca Gson incluída no projeto (JAR ou via gerenciador de dependências)
- Chave válida da ExchangeRate API (free ou paga) — inserida na classe APIClient
- Configurando o projeto:
- Adicione a biblioteca Gson ao seu projeto (exemplo: gson-2.10.1.jar no classpath).
- Insira sua chave de API da ExchangeRate no arquivo APIClient.java:
private static final String API_KEY = "SUA_CHAVE_API_AQUI";-
Compilação:
Compile as classes, por exemplo, pelo terminal:
javac -cp ".;gson-2.10.1.jar" ConversorMoedas.java APIClient.java-
Execução:
Execute a aplicação:
java -cp ".;gson-2.10.1.jar" ConversorMoedas- Interação:
- Escolha uma opção no menu gráfico.
- Insira o valor a ser convertido.
- Veja o resultado da conversão.
- Repita ou saia do programa.
ConversorMoedas.java
- Contém o loop principal com a interface gráfica.
- Gerencia o menu, leitura da opção do usuário com validação.
- Recebe o valor a ser convertido, validando tipo e valores positivos.
- Usa a classe APIClient para solicitar a conversão via API.
- Exibe resultados e mensagens de erro.
APIClient.java
- Contém a lógica para montar a URL da API com a moeda de origem, destino e valor.
- Faz a requisição HTTP GET para a ExchangeRate API.
- Lê a resposta JSON e faz o parsing usando Gson.
- Trata a resposta da API, lança exceção em caso de erro.
- Retorna o valor convertido para a aplicação.
- Uso de Locale.US para garantir que o valor decimal na URL utilize ponto (.) e não vírgula (,) — requisito para APIs internacionais.
- Requisição HTTP feita com HttpURLConnection.
- Parsing JSON usando JsonParser e JsonObject da biblioteca Gson.
- Interface gráfica feita com JOptionPane, incluindo caixas de diálogo para entrada e mensagens.
- Uso de tratamento de exceções para garantir que falhas na rede ou na API sejam capturadas e exibam mensagens amigáveis ao usuário.
- Validação rigorosa da entrada para garantir apenas números válidos e opções do menu corretas.
| Tipo de Erro | Como é tratado? |
|---|---|
| Entrada inválida no menu | Mensagem de erro e volta para o menu solicitando nova opção |
| Valor digitado inválido | Mensagem indicativa para digitar um valor numérico válido e positivo |
| Erro na resposta da API | Mensagem de erro amigável informando falha na conversão |
| Erros HTTP (ex.: 404, 500) | Exception capturada e mensagem exibida para o usuário |
| Cancelamento ou fechamento | O programa encerra de forma elegante |
- Suporte a mais moedas (permitir escolha dinâmica via API ou lista ampliada)
- Histórico de conversões na sessão
- Interface gráfica mais avançada usando JavaFX ou Swing completo
- Implementação de testes automatizados
- Cache das taxas para evitar consultas em excesso e usar o plano gratuito da API
- Tradução e internacionalização da interface
📄 Licença
Este projeto está sob a licença MIT.
Veja o arquivo LICENSE para mais detalhes.
👤 Desenvolvido por
Gustavo N. Bezerra - LinkedIn | GitHub |gustavonunnes@hotmail.com



