Mini Calculadora en Java [Swing Biblioteca Gráfica]


En Java existe una biblioteca gráfica (Componentes Swing) la cual incluye widgets para la interfaz gráfica de usuario (cajas de texto, botones, menús entre muchos otros...).

Haciendo uso de ésta biblioteca vamos a crear una "MiniCalculadora" con las operaciones básicas como lo son: suma, resta, multiplicación y división. 

Para ésta "MiniCalculadora" haremos uso de 3 JTextField (campos de texto) dos para los operando y uno para mostrar el resultado , 5 JButtons (botones) 4 para las operaciones 1 para salir de la aplicación y 1 para mostrar el about, a su vez 4 JLabels para mostrar ciertos textos en la ventana. 

Operar.java //Calculadora 
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import javax.swing.*;

import java.awt.event.*; // agregamos esto tambien para el boton.

public class Operar extends JFrame implements ActionListener {
 private JTextField operando1, operando2, resultado;
 private  JButton restar, sumar, multiplicar, dividir, cerrar, acerca;
 private JLabel titulo, texto1, texto2, result;
 public Operar(){
  setLayout(null);
  //text fields
  operando1 = new JTextField();
  operando1.setBounds(100, 100, 100, 20);
  add(operando1);
  operando2 = new JTextField();
  operando2.setBounds(100, 130, 100, 20);
  add(operando2);
  resultado = new JTextField();
  resultado.setBounds(100, 160, 100, 20);
  add(resultado);
  //buttons
  restar = new JButton("Restar");
  restar.setBounds(220, 100, 100, 50);
  add(restar);
  restar.addActionListener(this);
  
  sumar = new JButton("Sumar");
  sumar.setBounds(220, 160, 100, 50);
  add(sumar);
  sumar.addActionListener(this);
  
  multiplicar = new JButton("Multiplicar");
  multiplicar.setBounds(220, 220, 100, 50);
  add(multiplicar);
  multiplicar.addActionListener(this);
  
  dividir = new JButton("Dividir");
  dividir.setBounds(220, 280, 100, 50);
  add(dividir);
  dividir.addActionListener(this);
  
  cerrar = new JButton("Salir");
  cerrar.setBounds(100, 200, 100, 50);
  add(cerrar);
  cerrar.addActionListener(this);
  
  acerca = new JButton("About");
  acerca.setBounds(100, 260, 100, 50);
  add(acerca);
  acerca.addActionListener(this);
  //labels
  titulo = new JLabel("Calculadora francves v1.0");
  titulo.setBounds(130, 40, 200, 30);
  add(titulo);
  
  texto1 = new JLabel("Primer Valor: ");
  texto1.setBounds(10, 95, 200, 30);
  add(texto1);
  
  texto2 = new JLabel("Segundo Valor: ");
  texto2.setBounds(10, 125, 200, 30);
  add(texto2);
  
  result = new JLabel("Resultado: ");
  result.setBounds(10, 155, 200, 30);
  add(result);
 }
 
 
 
 public void actionPerformed(ActionEvent e) {
  if(e.getSource() == restar){
   String oper1=operando1.getText();
            String oper2=operando2.getText();
            int num1=Integer.parseInt(oper1);
            int num2=Integer.parseInt(oper2);
            int resul=num1-num2;
            String total=String.valueOf(resul);
            resultado.setText(total);
  }
  if(e.getSource() == sumar){
   String oper1=operando1.getText();
            String oper2=operando2.getText();
            int num1=Integer.parseInt(oper1);
            int num2=Integer.parseInt(oper2);
            int resul=num1+num2;
            String total=String.valueOf(resul);
            resultado.setText(total);
  }
  if(e.getSource() == multiplicar){
   String oper1=operando1.getText();
            String oper2=operando2.getText();
            int num1=Integer.parseInt(oper1);
            int num2=Integer.parseInt(oper2);
            int resul=num1*num2;
            String total=String.valueOf(resul);
            resultado.setText(total);
  }
  if(e.getSource() == dividir){
   String oper1=operando1.getText();
            String oper2=operando2.getText();
            int num1=Integer.parseInt(oper1);
            int num2=Integer.parseInt(oper2);
            int resul=num1/num2;
            String total=String.valueOf(resul);
            resultado.setText(total);
  }
  
  if(e.getSource() == cerrar){
   System.exit(0);
  }
  
  if(e.getSource() == acerca){
   JOptionPane.showMessageDialog(null, "Calculadora francves v1.0 \n Sigueme en twitter @francves");
  }
 }
 
 public static void main(String[] ar){
  Operar ope = new Operar();
  ope.setBounds(10, 10, 400, 400);
  ope.setResizable(false);
  ope.setVisible(true);
 }
}

Explicación:

import javax.swing.*;
import java.awt.event.*;

Debemos importar esos paquetes para poder manejar las componentes Swing que vamos a utilizar en la calculadora.

Declaramos cada componente y luego le empezamos a dar ciertas características como lo son el tamaño y la posición en la pantalla.

restar.setBounds(220, 100, 100, 50);

La linea anterior le está dando ciertas características al botón "restar.setBounds(x, y, width, height);" con el parámetro "X" indicamos que tan a la izquierda o derecha se encuentra el boton, con el parámetro "Y" indicamos que tan arriba o abajo está el botón. En el tercer parámetro "width" como allí lo indica en lo ancho del botón y "Height" lo alto del botón.

Luego, debemos definir la acción que ejecutará cada botón al hacer clic sobre el. Seguimos con el ejemplo del botón "restar".

if(e.getSource() == restar){
String oper1=operando1.getText();
String oper2=operando2.getText();
int num1=Integer.parseInt(oper1);
int num2=Integer.parseInt(oper2);
int resul=num1-num2;
String total=String.valueOf(resul);
resultado.setText(total);
}

Con el método .getText() obtenemos el valor ingresado dentro de los campos de texto. Luego, estos valores ingresan como un tipo de dato STRING por ello hay que convertirlos a un tipo de dato con el cual podamos realizar operaciones matemáticas, en este caso lo convertimos a int(entero). Esa conversión de tipo de dato la realizamos con el método Integer.parseInt() pasándole como parámetro la variable que ha guardado el valor ingresado, en nuestro caso sería la variable oper1.
Después de realizar esa conversión, el dato lo debemos guardar en una nueva variable de tipo entero.
Realizamos las operaciones respectivas y al tener un resultado, ese valor lo debemos convertir en un dato STRING para luego mostrarlo en el campo de texto correspondiente al resultado. Esto lo hacemos con el método String.valueOf(resul) pasándole como parámetro la variable que almacena el resultado. Por último Asignamos el valor de la nueva variable de tipo string que contiene el resultado al campo de texto que lo mostrará en pantalla. 

1 ope.setBounds(10, 10, 400, 400);
2 ope.setResizable(false);
3 ope.setVisible(true);

Si desean cambiar el tamaño de la ventana modifiquen el valor 400 al que ustedes deseen. Recordar que el método setBounds(10, 10, 400, 400); definen la posición en pantalla (en éste caso de la ventana) y el tamaño de la misma. Si desean modificar el tamaño de la pantalla a su gusto en el momento que están ejecutando el programa camabien el parámetro del metodo ope.setResizable(false); de false a true.
 Por último el método setVisible(true); si cambiamos el parámetro de true a false haremos invisible la ventana.

ScreenShot del programa:


Consideraciones:
La calculadora realiza operaciones con datos enteros, si desean hacerlo con datos reales (float) deben hacer uso del método Float.parseFloat(Variable que deseo convertir su valor en numero real); y luego de realizar las operaciones convierte el resultado a String de la misma manera como lo hicimos previamente.

¡Ayúdanos a seguir creciendo, comparte en tus Redes Sociales!

Siguiente
« Prev Post
Anterior
Next Post »

1 comentarios:

Click here for comentarios
for IT the
admin
27 de diciembre de 2016, 0:26 ×

I have read your blog its very attractive and impressive. I like it your blog.

Java Training in Chennai Core Java Training in Chennai Core Java Training in Chennai

Java Online Training Java Online Training Core Java 8 Training in Chennai Core java 8 online training JavaEE Training in Chennai Java EE Training in Chennai

Congrats bro for IT the you got PERTAMAX...! hehehehe...
Reply
avatar