INÍCIO SOBRE EXPERTISE PORTFÓLIO BLOG CONTATO
Idioma

Desenvolvendo uma aplicação desktop de controle de Finanças Pessoais em Java, com Java Swing e PostgreSQL.

01/07/2022 • 3 min de leitura
Java Java Swing PostgreSQL POO UML MVC UDESC

Demonstração do Projeto

Na disciplina de Programação Orientada a Objetos na Universidade do Estado de Santa Catarina (UDESC), a proposta de trabalho final foi implementar uma aplicação em três etapas: modelagem das camadas de dados e negócio em Java, desenvolvimento da interface gráfica e integração com banco de dados para persistência.

A aplicação gerencia finanças pessoais por meio do cadastro de receitas e despesas em categorias específicas, incluindo:

  • Gráficos e estimativas no painel principal a partir das entradas e saídas financeiras.
  • Histórico de transações filtrado por categorias pré-definidas.
  • Interface gráfica pensada para facilitar o uso diário.
  • Sistema de login e cadastro de usuários.
  • Previsão orçamentária para controle de gastos.

Imagem 1 Imagem 2 Imagem 3 Imagem 4 Imagem 5

Arquitetura do back-end

O banco de dados

A persistência de dados utiliza PostgreSQL. A organização do esquema reflete as classes da camada de dados, projetadas para armazenar os registros manipulados pelo programa. O banco foi documentado por meio de um diagrama de classes UML (Unified Modeling Language).

Diagrama de Classes

O diagrama acima descreve as relações entre as tabelas Usuário, Conta, Categoria, Registro e Orçamento. A tabela Registro possui duas chaves estrangeiras: uma apontando para a conta e outra para a categoria correspondente. A tabela Conta referencia o usuário proprietário da conta que registrou a movimentação.

Encapsulamento e padrão DAO

Em projetos em Java, manter chamadas SQL dispersas por diferentes camadas prejudica a manutenção. Por isso, a camada de acesso adota o padrão DAO (Data Access Object).

Código DAO 1 Código DAO 2

Cada entidade possui uma classe DAO dedicada que concentra as operações de inserção, leitura, atualização e remoção. Combinado com o padrão singleton, em que cada DAO mantém uma única instância ativa, o acesso aos dados fica centralizado e evita conexões redundantes com o banco.

A estrutura do banco final:

Estrutura do banco

Camada de negócio

A lógica da aplicação atua como intermediária entre as classes DAO e a interface gráfica. Operações como validação de dados, cadastro de contas e encerramento de sessão são coordenadas pela classe central do sistema antes de refletir os dados nas telas.

A estrutura geral do projeto:

Estrutura Geral do Projeto

Interface e experiência de uso

Identidade visual e tipografia

A interface adota uma identidade visual consistente em todas as telas do programa, com paleta de cores em tons de azul, tipografia padronizada e conjunto próprio de ícones para compor a navegação.

Identidade Visual

Layouts em Java Swing

O desenvolvimento gráfico utilizou Java Swing. Como a biblioteca possui componentes visuais com aparência clássica, os botões, campos de texto e listas foram personalizados manualmente para criar um visual mais limpo e próximo de aplicações desktop modernas.

Interface Java Swing

Gráficos e relatórios

Os gráficos do painel principal foram construídos com a biblioteca JFreeChart, exibindo séries temporais e barras comparativas. Os dados nos eixos X e Y são recalculados dinamicamente conforme o usuário altera os filtros de período e categoria, e as tabelas associadas são sincronizadas na mesma tela.

Gráficos e Tabelas

Conclusão

O projeto atendeu aos requisitos da disciplina ao cobrir a modelagem de domínio, a persistência com DAO no PostgreSQL e a construção da interface gráfica em Java Swing. Próximos passos incluiriam testes automatizados de integração, geração de instaladores para Linux e Windows e aperfeiçoamentos no fluxo de orçamentos.

Repositório no GitHub: https://github.com/hertonnn/API-Financas

Referências