Calculadora Swing
Calculadora de secretária construída em Java, com interface gráfica Swing. Não faz parte do meu stack principal (front-end web) — está aqui para mostrar que a lógica de programação atravessa linguagens. Desktop calculator built in Java, with a Swing graphical interface. It's not part of my main stack (front-end web) — it's here to show that programming logic carries across languages. Calculadora de escritorio construida en Java, con interfaz gráfica Swing. No forma parte de mi stack principal (front-end web) — está aquí para mostrar que la lógica de programación atraviesa lenguajes.
Pré-visualização da interface, fiel ao código-fonte e à paleta de marca (ver secção de código, abaixo). Interface preview, matching the source code and brand palette (see code section below). Vista previa de la interfaz, fiel al código fuente y a la paleta de marca (ver sección de código, abajo).
A lógica de cálculo The calculation logic La lógica de cálculo
A interface (Swing/NetBeans) trata dos botões; esta classe trata da parte que interessa — interpretar a expressão digitada e calcular o resultado, sem depender de bibliotecas externas. The interface (Swing/NetBeans) handles the buttons; this class handles the part that matters — parsing the typed expression and calculating the result, without relying on external libraries. La interfaz (Swing/NetBeans) se encarga de los botones; esta clase se encarga de la parte que importa — interpretar la expresión escrita y calcular el resultado, sin depender de librerías externas.
Versão corrigida: tratamento de divisão por zero, suporte a números negativos e a vários operadores em sequência. Corrected version: division-by-zero handling, negative number support, and multiple sequential operators. Versión corregida: manejo de división por cero, soporte de números negativos y varios operadores en secuencia.
private double calcular(double a, double b, char operador) {
switch (operador) {
case SOMA: return a + b;
case SUBTRACCAO: return a - b;
case MULTIPLICACAO: return a * b;
case DIVISAO:
if (b == 0) {
throw new ArithmeticException("Divisão por zero");
}
return a / b;
default:
return b;
}
}
Excerto de MotorCalculo.java — a classe de lógica pura, isolada da interface gráfica, sem depender de bibliotecas externas.
Excerpt from MotorCalculo.java — the pure logic class, isolated from the GUI, with no external dependencies.
Extracto de MotorCalculo.java — la clase de lógica pura, aislada de la interfaz gráfica, sin dependencias externas.
A mesma lógica, no meu stack principal Same logic, in my main stack La misma lógica, en mi stack principal
Depois de resolver o problema em Java, reconstruí a mesma calculadora em HTML, CSS e JavaScript — a versão que corre mesmo aqui no browser, sem instalação nenhuma. After solving the problem in Java, I rebuilt the same calculator in HTML, CSS and JavaScript — the version that actually runs right here in the browser, no installation needed. Después de resolver el problema en Java, reconstruí la misma calculadora en HTML, CSS y JavaScript — la versión que corre aquí mismo en el navegador, sin instalación.