Data: 27/07/2022
Curso: Cod3r | Java 2022 Completo
Este projeto contém uma aplicação desktop em Java utilizando Swing para a construção de uma calculadora de operações matemáticas básicas. Desenvolvido como parte do curso de Java 2022 Completo da Cod3r, o projeto implementa os padrões de design Singleton e Observer, com arquitetura separada em camadas de modelo (model) e visão (view).
Aplicação Desktop Java de uma calculadora de operações matemáticas básicas (soma, subtração, multiplicação e divisão), para cálculo de números inteiros e pontos flutuantes. Não realiza cálculos de números negativos diretamente.
| Printscreen | Vídeo |
|---|---|
![]() |
![]() |
- Memory.java — Classe singleton responsável pela lógica de cálculo, armazenamento de operandos e processamento de comandos
- ObserverMemory.java — Interface funcional para o padrão Observer, permitindo que o Display seja notificado das alterações
- Calculator.java — Classe principal que inicia a aplicação e organiza o layout (Display + Keyboard)
- Display.java — Painel de exibição dos números, implementa ObserverMemory para atualização em tempo real
- Keyboard.java — Teclado numérico e operadores, implementa ActionListener para captura de cliques
- Button.java — Componente personalizado para os botões da calculadora
LICENSE
README.md
.gitignore
.github/
FUNDING.yml
src/br/com/otogamidev/
model/
Memory.java # lógica de cálculo e estado da calculadora
ObserverMemory.java # interface do padrão Observer
view/
Calculator.java # janela principal da aplicação
Display.java # área de exibição dos valores
Keyboard.java # teclado com botões numéricos e operadores
Button.java # componente de botão customizado
- Java 11 — Linguagem de programação
- Java Swing — Biblioteca gráfica para interface desktop
- IntelliJ IDEA — Ambiente de desenvolvimento recomendado
- Soma (+)
- Subtração (-)
- Multiplicação (×)
- Divisão (/)
- Suporte a números decimais (vírgula como separador)
- Botão AC para limpar e resetar
- Singleton — A classe
Memorypossui uma única instância global - Observer — O
Displayse inscreve como observador e é notificado a cada alteração de valor - Separação de responsabilidades — Model (lógica) e View (interface) bem definidos
- Java JDK 11 ou superior instalado
- (Opcional) IntelliJ IDEA ou outra IDE compatível
# Navegue até o diretório do projeto
cd calculator
# Compile os arquivos fonte
javac -d out src/br/com/otogamidev/model/*.java src/br/com/otogamidev/view/*.java
# Execute a aplicação
java -cp out br.com.otogamidev.view.Calculator- Abra o projeto na IDE
- Localize a classe
Calculator.javaemsrc/br/com/otogamidev/view/ - Execute o método
main(clique direito → Run 'Calculator.main()')
- ✅ Programação orientada a objetos em Java
- ✅ Interface gráfica com Java Swing (JFrame, JPanel, JButton, JLabel)
- ✅ Padrão Singleton
- ✅ Padrão Observer
- ✅ Layout Managers (BorderLayout, GridBagLayout, FlowLayout)
- ✅ Eventos e ActionListener
- ✅ Interfaces funcionais (@FunctionalInterface)
- A classe
Calculatorinicia a janela e monta o layout comDisplay(norte) eKeyboard(centro) - O
Displayse registra como observador daMemorye exibe o valor atual - Ao clicar em um botão, o
KeyboardchamaMemory.processCommand(valor) - A
Memoryidentifica o tipo de comando (número, operador, AC, vírgula, igual) - Para números: armazena em
firstBufferedTextousecondBufferedTextconforme o contexto - Para operadores: guarda o operador em
lastCommandTypee limpa o display para o próximo número - Para igual: executa a operação matemática, atualiza o resultado e notifica os observadores
- O
Displayrecebe a notificação viachangeValue()e atualiza o texto exibido
- Números (0-9): Concatena ou substitui conforme o estado
- Vírgula (,) : Adiciona separador decimal (uma única vírgula por número)
- Operadores (+, -, ×, /) : Armazena o operador e prepara para o segundo operando
- AC : Reseta todo o estado da memória
- = : Calcula e exibe o resultado, permitindo operações encadeadas
MacOS Monterey — Versão 12.5
IntelliJ IDEA Community Edition 2022.1
- Atom Material Icons
- Codota AI Autocomplete for Java
- GitToolBox
- Nyan Progress Bar
- Rainbow Brackets
- Wakatime
- Xcode-Dark Theme
Este projeto está licenciado sob a MIT License — veja o arquivo LICENSE para mais detalhes.
- Cod3r | Java 2022 Completo — Curso de formação em Java
- Documentação Java Swing — Oracle Tutorial
- Código-fonte em
src/br/com/otogamidev/
Caso você queira ajudar a melhorar este repositório, qualquer ajuda é bem-vinda.
- Faça um fork deste repositório (https://github.com/henriqueotogami/calculator/fork)
- Crie um branch com as suas modificações:
git checkout -b meu-novo-recurso - Faça um commit:
git commit -am 'Adicionando um novo recurso...' - Faça um push:
git push origin meu-novo-recurso - Crie uma nova pull request neste repositório
Depois que sua solicitação (pull request) for aceita e adicionada (merged) ao ramo principal (branch main), você pode excluir sua branch tranquilamente.
#Java #Swing #Calculator #DesktopApplication #ObjectOrientedProgramming #DesignPatterns #Singleton #Observer #OpenSource #GitHub #LearningJava #Cod3r
Java, calculadora, Swing, desktop, aplicação Java, padrão Singleton, padrão Observer,
programação orientada a objetos, interface gráfica, JFrame, JPanel, JButton,
algoritmos matemáticos, operações básicas, código aberto, projeto acadêmico


