0% encontró este documento útil (0 votos)
786 vistas

Calculadora en Java

Este documento describe cómo crear una calculadora básica en Java con interfaz gráfica. Explica cómo importar las clases necesarias de AWT, events y Swing, crear la clase Main extendiendo JFrame e implementando ActionListener, y agregar botones y un cuadro de texto a la interfaz. También cubre cómo capturar los eventos de los botones para realizar los cálculos correspondientes.

Cargado por

Maria Canul
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
786 vistas

Calculadora en Java

Este documento describe cómo crear una calculadora básica en Java con interfaz gráfica. Explica cómo importar las clases necesarias de AWT, events y Swing, crear la clase Main extendiendo JFrame e implementando ActionListener, y agregar botones y un cuadro de texto a la interfaz. También cubre cómo capturar los eventos de los botones para realizar los cálculos correspondientes.

Cargado por

Maria Canul
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 6

Calculadora

en

java

Java es un lenguaje que nos permite crear aplicaciones Desktop para muchos sistemas operativos. Hacer un programa en java como una calculadora con interfaz grfica nos permite aprender sobre botones, paneles, eventos y otras cuestiones bsicas del desarrollo de aplicaciones. Programa Calculadora

Por cuestiones de espacio y legibilidad el cdigo fuente de la calculadora en java se muestra en porciones. Si deseas el cdigo completo, ste est adjuntado en las descargas del artculo.

Para crear la calculadora de la imgen anterior debemos tener en cuenta la interfaz y los eventos. Lo ideal es mantener el cdigo que permite los clculos en una clase separada, pero aqui todo se realizar en una nica clase. Para comenzar a trabajar con componentes grficos y eventos debemos agregar al inicio del archivo de la clase las siguientes inclusiones: view sourceprint?
1 import java.awt.*; 2 import java.awt.event.*; 3 import javax.swing.*;

Con

esto

importamos

todas

las del

clases

awt,

events

swing.

Estructura

programa

Nuestra clase se llamar Main y nuestro archivo main.class. Este es su esqueleto: view sourceprint?
01 public class Main extends JFrame implements ActionListener { 02 03 private JTextField t;

04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 }

private int a = 0, private int eq = 0; private char op = 0; public Main() { ... }

b = 0;

public static void main(String[] args) { new Main(); } public void actionPerformed(ActionEvent e) { ... }

Como se puede ver, nuestra clase extiende JFrame e implementa la interface ActionListener que nos obliga a implementar el mtodo actionPerformed (click en botn). Se tienen atributos privados, el primero un cuadro de texto, los demas contadores y variables de control. Luego tenemos el constructor de la clase, que nos servir para crear la interfaz y asignar eventos a los controles correspondientes (lo veremos ahora mismo). Luego tenemos un mtodo estatico especial llamado main (en minsculas) que nos permite ejecutar la calculadora. Y por ltimo un evento para capturar los clicks del usuario sobre los diferentes botones de la calculadora. Creando la interfaz

Dentro del constructor podemos ver este cdigo: view sourceprint?


01 super("Calculadora Bsica"); String labelButtons[] = {"7", "8", "9", "/", "4", "5", "6", "*", 02 "1", "2", "3", "-", "0", "C", "=", "+"}; 03 JPanel cp = (JPanel) this.getContentPane(); 04 cp.setLayout(new BorderLayout()); 05 JPanel p = new JPanel(); 06 p.setLayout(new GridLayout(0, 4)); 07 for (int i = 0; i < labelButtons.length; ++i) { 08 JButton button = new JButton(labelButtons[i]); 09 10 button.addActionListener(this); p.add(button);

11 } 12 t = new JTextField(); 13 t.setHorizontalAlignment(JTextField.RIGHT); 14 t.setText("0"); 15 cp.add(t, BorderLayout.PAGE_START); 16 cp.add(p, BorderLayout.CENTER);

Primero asignamos el ttulo de la ventana y creamos un vector con los caracteres de los botones. Si lo notaron tiene un orden algo extrao, esto se debe al algoritmo que se usa luego para crear los controles recorriendo el vector. Posteriormente creamos un JPanel y le asignamos un layout tipo grid de 4 columnas, entonces al recorrer el vector vamos agregando a este panel objetos JButton creados con la etiqueta que obtenemos del item actual del vector y de paso ya le asignamos el controlador del evento (el mismo objeto, this, hace referencia a esta misma instancia de la clase Main). Al salir del ciclo ya tenemos todos los botones, pero nos falta un poco para terminar el diseo. Creamos un cuadro de texto y le fijamos alineacin de texto a la derecha (ser donde se muestren los resultados entre otras cosas). Inicialmente le asignamos un texto igual a "0". Al panel principal le colocamos el layout BorderLayout, agregamos el cuadro de texto arriba y al centro el panel que contiene todos los botones generados anteriormente. Capturando los eventos

Nuestra interfaz nos qued muy bonita, pero no hace nada. Debemos darle funcionalidad y esto lo hacemos en el evento que captura los click del usuario sobre los diferentes botones de la interfaz. view sourceprint?
01 public void actionPerformed(ActionEvent e) { 02 char c = ((JButton) e.getSource()).getText().charAt(0); 03 04 05 06 07 08 09 10 } if (c >= '0' && c <= '9') { .... Implementacin //Log System.out.print(a); System.out.print(" "); System.out.print(b); ....

La variable local c se asigna con el caracter que hace referencia al botn pulsado (ver el contenido del vector de etiquetas de botones que se declara en el constructor de la clase).

Con esa variable sabremos qu es lo que puls el usuario y consecuentemente deberemos trabajar con dicha orden. Si es un dgito haremos una cosa, si es un signo de operatoria otra cosa. Si se trata del signo igual deberemos calcular e informar. Y si es el simbolo C (clear), simplemente resetearemos la calculadora. El cdigo completo de este algoritmo se puede descargar en la seccin correspondiente. Es un cdigo con varias comparaciones, pero facil de comprender. Posiblemente el cdigo tenga algn que otro error, si te animas a mejorarlo podes publicar tu mejora como uno de los comentarios de este artculo. Si tiene alguna pregunta sobre ste artculo por favor deje un comentario y ser respondido. Tambin recuerde que ste artculo tiene descargas disponibles

Como puedo hacer una calculadora bsica en java?


Ya hice una, pero me estn pidiendo otra con estas instrucciones y no he podido realizarla: 1. Desarrolla una clase calculadora con las operaciones bsicas (+, -, /, *) expresadas en mtodos (p.e. suma(int a, int b)), por lo tanto, cuatro mtodos. Los mtodos debern ser mtodos de instancia (no estticos). 2. Desarrolla una clase Prueba Calculadora con el mtodo main donde se construir un objeto de clase Calculadora. El programa estar en un ciclo donde en cada vuelta se imprimir un men con las operaciones de la calculadora ms la operacin "salir" para terminar el programa. Cuando se selecciona una opcin correspondiente a una operacin de la calculadora, el programa solicitar los operandos para la operacin, ejecutar la operacin invocando el mtodo correspondiente y presentar el resultado en pantalla.

hace 3 aos Reportar abusos

by Manuelit... Miembro desde: 19 abril 2009 Total de puntos: 2.715 (Nivel 4)


Aadir a mis amigos Bloquear

Mejor respuesta - elegida por los votantes

Que tal mi amigo, aqui te dejo el codigo package yahoo; import java.io.BufferedReader; import java.io.InputStreamReader; /** * * @author Meme */ public class Calculadora { /** Creates a new instance of Calculadora */ public Calculadora() { } public float suma(float a, float b){ return a + b; } public float resta(float a, float b){ return a - b; } public float multiplicacion(float a, float b){ return a * b; } public float division(float a, float b){ if(b > 0){ return a / b; } else { return 0; } } public static void main(String a[]){ int opcion = 0; Calculadora objeto = new Calculadora(); try{ while(true){ System.out.println("Menu:"); System.out.println("\t1\tSumar"); System.out.println("\t2\tRestar"); System.out.println("\t3\tMultiplicar"); System.out.println("\t4\tDividir"); System.out.println("\t5\tSalir"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

opcion = Integer.parseInt(br.readLine()); if(opcion > 0 && opcion < 5){ System.out.println("Ingrese primer numero:"); float n1 = Float.parseFloat(br.readLine()); System.out.println("Ingrese segundo numero:"); float n2 = Float.parseFloat(br.readLine()); switch(opcion){ case 1: System.out.println("\n\t\tEl resultado es: " + objeto.suma(n1, n2) + "\n"); break; case 2: System.out.println("\n\t\tEl resultado es: " + objeto.resta(n1, n2) + "\n"); break; case 3: System.out.println("\n\t\tEl resultado es: " + objeto.multiplicacion(n1, n2) + "\n"); break; case 4: System.out.println("\n\t\tEl resultado es: " + objeto.division(n1, n2) + "\n"); break; default: break; } } else { System.exit(0); } } }catch(Exception e){ e.printStackTrace(); } } }

También podría gustarte