Aprende como hacer una calculadora en java netbeans con métodos, con un básico ejemplo de como hacer una calculadora básica en java, además del código para calculadora en java. A continuación te mostraré un sencillo código de una calculadora básica, el cual realiza las cuatro operaciones básicas (suma, resta, multiplicación y división). Ahora, sigamos con el ejemplo de la Calculadora en Java 😀
Antes de continuar, cabe aclarar que se obtendrán los números por medio de variables, para lo anterior usamos los cuadros de dialogo, luego realizamos las operaciones con los números que han ingresado, para esto usamos métodos los cuales estarán en una clase; para finalizar se mostrará un cuadro de dialogo el cual tendrá los resultados de las operaciones realizadas.
Esto es algo básico, algo como un «java for dummies«, o principiantes, no te preocupes por este status poco cómodo, todos empezamos desde cero :S Para empezar se van a pedir dos números de tipo entero, no importa si son negativos o positivos; con estos dos números se deben de realizar las cuatro operaciones matemáticas básicas ya anteriormente mencionadas, los números se pedirán separadamente, en otras palabras primero se pide un numero y después se pide el otro 😀 Suena algo idiota, verdad?, pero la realidad es que en una casilla se pueden ingresar los dos números, no sobra aclarar la situación 🙂
Complicado? no tanto 🙂 como vemos es importante realizar un análisis lo mas detallado posible, ya que este nos servirá para aprender Java de una forma correcta. Antes de compartir el código de la aplicación cabe aclarar que se usarán dos clases, una que tendrá el menú y la otra que tendrá los métodos necesarios para las operaciones, la primer clase hará uso de los métodos de la segundo por medio de la creación de un objeto de esa clase 😀 Suena complicado? En realidad no lo es, supongamos que tenemos dos casilleros, uno es propio, el otro es de un amigo, pero necesitamos usar algo que solo hay en el casillero de nuestro amigo, para eso podemos hacer una copia de la llave de tal casillero y así poder usar lo necesario, espero que me hayan entendido 😉
A continuación podrás descargar el código fuente del ejemplo de la calculadora básica en Java. Para esto solo te pido una pequeña colaboración social 😉 Seguido, podrás ver el código de la primer clase del ejemplo:
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 | package calculadora; import javax.swing.JOptionPane; /** * @author belial9826 * www.jagonzalez.org */ public class principal { //iniciacion de la clase public static void main (String[] args){ //metodo principal int op=0, n1=0, n2=0; //op variables para el menu, n1 y n2 variables de los numeros String ax; //variable que recibe los numeros operaciones trin = new operaciones(); //objeto llamado trin de la clase operaciones para usar los metodos do{//comienzo del ciclo op = JOptionPane.showConfirmDialog(null,"Desea ingresar dos numeros y mostrar el resultado " + "nde las 4 operaciones basicas?");//cuadro de dialogo de tipo entrada if(op == JOptionPane.YES_OPTION){//si se selecciona SI hara lo que hay en el bloque ax = JOptionPane.showInputDialog(null, "Digite el primer numero: "); if(trin.isNum(ax)){//primera validacion n1 = Integer.parseInt(ax);//n1 toma el valor convertido del anterior cuadro de dialogo ax = JOptionPane.showInputDialog(null, "Digite el segundo numero: "); if(trin.isNum(ax)){//segunda validacion n2 = Integer.parseInt(ax);//n2 toma le valor convertido del anterior cuadro de dialogo JOptionPane.showMessageDialog(null, "El resultado de la suma es: "+trin.suma(n1, n2)//se usa el metodo de suma de la clase operacioes +"nEl resultado de la resta es: "+trin.resta(n1, n2)//se usa el metodo de resta de la clase operaciones +"nEl resultado de la multiplicacion es: "+trin.multiplicacion(n1, n2)//se usa el metodo de multiplicacion de la clase operaciones +"nEl resultado de la division es: "+trin.division(n1, n2));//se usa el metodo de division de la clase operaciones }//final segunda validacion else{ JOptionPane.showMessageDialog(null, "Ingrese un numero","Advertencia !!!", JOptionPane.WARNING_MESSAGE); } } //final primera validacion else{//se muestra un mensaje y no se realiza las operaciones ya que el primer valor no es un numero JOptionPane.showMessageDialog(null, "Ingrese un numero","Advertencia !!!", JOptionPane.WARNING_MESSAGE); } }//finaliza bloque else if(op == JOptionPane.NO_OPTION){//si se selecciona NO hara lo que hay en el bloque JOptionPane.showMessageDialog(null, "Si desea terminar la aplicacion elige Cancelar.","Advertencia !!!" ,JOptionPane.WARNING_MESSAGE);//mensaje de advertencia }//finaliza bloque }while(op!= JOptionPane.CANCEL_OPTION);//el ciclo finaliza cuando se da cancelar System.exit(0);//linea para asegurar la finalizacion del programa } //fin metodo principal }//final de la clase |
package calculadora; import javax.swing.JOptionPane; /** * @author belial9826 * www.jagonzalez.org */ public class principal { //iniciacion de la clase public static void main (String[] args){ //metodo principal int op=0, n1=0, n2=0; //op variables para el menu, n1 y n2 variables de los numeros String ax; //variable que recibe los numeros operaciones trin = new operaciones(); //objeto llamado trin de la clase operaciones para usar los metodos do{//comienzo del ciclo op = JOptionPane.showConfirmDialog(null,"Desea ingresar dos numeros y mostrar el resultado " + "nde las 4 operaciones basicas?");//cuadro de dialogo de tipo entrada if(op == JOptionPane.YES_OPTION){//si se selecciona SI hara lo que hay en el bloque ax = JOptionPane.showInputDialog(null, "Digite el primer numero: "); if(trin.isNum(ax)){//primera validacion n1 = Integer.parseInt(ax);//n1 toma el valor convertido del anterior cuadro de dialogo ax = JOptionPane.showInputDialog(null, "Digite el segundo numero: "); if(trin.isNum(ax)){//segunda validacion n2 = Integer.parseInt(ax);//n2 toma le valor convertido del anterior cuadro de dialogo JOptionPane.showMessageDialog(null, "El resultado de la suma es: "+trin.suma(n1, n2)//se usa el metodo de suma de la clase operacioes +"nEl resultado de la resta es: "+trin.resta(n1, n2)//se usa el metodo de resta de la clase operaciones +"nEl resultado de la multiplicacion es: "+trin.multiplicacion(n1, n2)//se usa el metodo de multiplicacion de la clase operaciones +"nEl resultado de la division es: "+trin.division(n1, n2));//se usa el metodo de division de la clase operaciones }//final segunda validacion else{ JOptionPane.showMessageDialog(null, "Ingrese un numero","Advertencia !!!", JOptionPane.WARNING_MESSAGE); } } //final primera validacion else{//se muestra un mensaje y no se realiza las operaciones ya que el primer valor no es un numero JOptionPane.showMessageDialog(null, "Ingrese un numero","Advertencia !!!", JOptionPane.WARNING_MESSAGE); } }//finaliza bloque else if(op == JOptionPane.NO_OPTION){//si se selecciona NO hara lo que hay en el bloque JOptionPane.showMessageDialog(null, "Si desea terminar la aplicacion elige Cancelar.","Advertencia !!!" ,JOptionPane.WARNING_MESSAGE);//mensaje de advertencia }//finaliza bloque }while(op!= JOptionPane.CANCEL_OPTION);//el ciclo finaliza cuando se da cancelar System.exit(0);//linea para asegurar la finalizacion del programa } //fin metodo principal }//final de la clase
Ahora se mostrará el código de la segunda clase:
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 | package calculadora; /** * @author belial9826 * www.jagonzalez.org */ public class operaciones { //comienzo clase operaciones public int suma(int n1, int n2){//metodo para sumar, recibe dos numeros int op; //variable que almacena la respuesta op = n1 + n2; //operacion return op; //devuelve el valor de la operacion } //fin metodo suma public int resta (int n1, int n2){ //metodo para restar, recibe dos numeros int op; //variable que almacena la respuesta op = n1 - n2; //operacion return op; //devuelve el valor de la operacion }// fin metodo resta public int multiplicacion(int n1, int n2){ //metodo para multiplicar, recibe dos numeros int op; //variable que almacena la respuesta op = n1 * n2; //operacion return op; //devuelve el valor de la operacion } //fin metodo multiplicacion public int division(int n1, int n2){ //metodo para division, recibe dos numeros int op; //variable que almacena la respuesta op = n1 / n2; //operacion return op; //devuelve el valor de la operación }//fin metodo division public boolean isNum(String n){//metodo para validar si se ha ingresado un numero, recibe una cadena de texto int a;//variable que almacena la cadena a convertir try{ a = Integer.parseInt(n); //se convierte la cadena return true; //si se ha convertido a entero devuelve verdadero } catch(NumberFormatException e){ return false; //si no se ha convertido a entero devuelve falso } }//fin metodo validar }//fin clase operaciones |
package calculadora; /** * @author belial9826 * www.jagonzalez.org */ public class operaciones { //comienzo clase operaciones public int suma(int n1, int n2){//metodo para sumar, recibe dos numeros int op; //variable que almacena la respuesta op = n1 + n2; //operacion return op; //devuelve el valor de la operacion } //fin metodo suma public int resta (int n1, int n2){ //metodo para restar, recibe dos numeros int op; //variable que almacena la respuesta op = n1 - n2; //operacion return op; //devuelve el valor de la operacion }// fin metodo resta public int multiplicacion(int n1, int n2){ //metodo para multiplicar, recibe dos numeros int op; //variable que almacena la respuesta op = n1 * n2; //operacion return op; //devuelve el valor de la operacion } //fin metodo multiplicacion public int division(int n1, int n2){ //metodo para division, recibe dos numeros int op; //variable que almacena la respuesta op = n1 / n2; //operacion return op; //devuelve el valor de la operación }//fin metodo division public boolean isNum(String n){//metodo para validar si se ha ingresado un numero, recibe una cadena de texto int a;//variable que almacena la cadena a convertir try{ a = Integer.parseInt(n); //se convierte la cadena return true; //si se ha convertido a entero devuelve verdadero } catch(NumberFormatException e){ return false; //si no se ha convertido a entero devuelve falso } }//fin metodo validar }//fin clase operaciones
Para aclarar en la primer linea de las clases se pone el package, esto se debe a que el código lo realicé en netbeans, en la segunda clase de la linea 33 a la 42 se aprecia un método el cual devuelve falso o verdadero dependiendo si lo que se ingresa es un numero entero o no, esto lo vemos en reflejado en las lineas 22 y 26 de la primer clase. El código esta con comentarios en las lineas necesarias, mas sin embargo cualquier duda o inquietud la pueden dejar plasmada en un comentario.
Antes de terminar le aseguro que el programa no esta totalmente terminado, ya que se puede generar un error en tiempo de ejecución, es fácil de solucionarlo y no lo corregí ya que este blog es para orientarlos y llevarlos por un buen camino, y no para hacerles el trabajo y evitar que ustedes piensen; algo que también pueden mejorar es que el usuario sea el que decida que operación desea usar, algo también sencillo de corregir. Espero que lo compartido sea de gran utilidad para ustedes 🙂
Hola – muchas gracias por compartir este ejemplo sencillo de la calculadora – me ha sido de utilidad para poner en practica l oque estoy aprendiendo de JAVA — ya ingrese todo el codigo pero al correrlo me da un error que dice»
Error: no se ha encontrado o cargado la clase principal examen2.examen2
Esto lo estoy realizando en ECLIPSE – por favor dime como soluciono para poder hacer trabajar el codigo, muchas gracias y saludos.
donde puedo descargtar el programa ? como se llama ?
como le puedo hacer para que al momento de dividir me aparesca correctamente el resultado con decimales diviso 5/2 y me sale 2.0 ?? :/
tu programa me fue de mucha utilidad
gracias
Gracias, muy buenos ejemplos 😀
y bien explicados te agradezco el tiempo que te tomas para aclarar dudas
y subir tus códigos, muy bien!!!
Disculpa tengo una duda, me dejaron una practica de hacer una calculadora con varias funciones y ya hice lo basico de suma, resta, multiplicacion y division, pero necesito que logre hacer todo al mismo tiempo, ademas de eso por ejemplo coloco en la pantalla de arriba 2 + en la pantalla de abajo tiene que aparecer 2, introdusco arriba un 3 abajo ya tienes que tener 5 sin presionar el igual, ademas de eso la calculadora tiene que dejar el procedimiento ejemplo: al final 2+3-1+3=7 eso con todo, +, – , *, / y las demas operaciones, Gracias
hola levin, encontraste solucion a esto ¡? estoy con el mismo problema…¡¡¡
saludos
Q onda primero q nada que bueno que hagas un foro asi y tengo duda:
Como seria para jcreator!! y pasame tu correo para pedir ayuda y puedas subirlo a lo demas si tienen las mimas dudas.
Cualquier cosa comenta porfa.
Saludos cordiales!!!
Hola @Carlos, con JCreator es lo mismo, crearemos el proyecto (para tener un orden con nuestras clases) así que vamos a: Project -> New Project…, seleccionamos Basic Java Application y con esto tendremos nuestro proyecto, si quieres ejecutar los ejemplos que hay en el blog tienes que copiar el código, y pegarlo en nuevas clases, recuerda nombrar estas clases con los nombres que hay en los códigos, ademas de esto tienes que borrar la linea 1, o aquella que comience con package …; ya que esta es la que define la carpeta en la cual se encuentran las clases. Espero te haya servido 😉
este, tengo una duda, en un mismo archivo ponemos los dos codigos?
claro que puedes colocar ambos códigos en un solo archivo, solo ten en cuenta que la carpeta donde este el archivo debe de tener el mismo nombre del package, por cierto, realizar esto se conoce como clase interna, ya que el segundo código esta contenido en una clase; mientras el primero también, pero seria la clase que contiene el método principal. Espero haberte ayudado, éxitos.
ayudenme con estos programas por favor estoy en apuros
1.realizar un programa de notacion extentendida donde ingrese un numero y muestre las sentenas decenas y unidades de dicho numero.
2. Realizar un programa donde ingrese un numero y muestre el anterior y siguiente de dicho numero.
3. Realizar un programa donde ingrese determinado numero y muestre los dies primeros multiples.
4. Realizar un programa de multiples converciones donde se va a convertir libras a onzas, onzas a libras, libras a kilogramos,kilogramos a libra, onzas a gramos.
JList.addElement(this.jTextField1.getText());
this.jList1.setModel(JList);
}
private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {
int posi=jList1.getSelectedIndex();
if(posi>=0)
{
JList1.remove(index);
}
else{
JOptionPane.showMessageDialog(rootPane,»No hay elementos en la lista o verifique que un elemento haya sido seleccionado»);
}
}
private void jButton3MouseClicked(java.awt.event.MouseEvent evt) {
JList.removeAllElements();
this.jList1.setModel(JList);
necesito ayuda necesito crear un programa y un jfreame de una lista q pueda agregar borrar y eliminar la lista pero no puedo y ya me desespere y es namas lo q llevo aver si me pueden ayudar
hola @elias, de antemano quiero agradecer tus comentarios en las entradas 🙂 te voy a dar el link para que te bajes un trabajo que realice en semestres anteriores con respecto a listas, comparando tu código con el que tengo veo que el mio es algo sencillo, aun así espero te sea de gran utilidad. en esta app podrás ingresar, eliminar y buscar las listas, sin mas que decirte el paquete lo puedes bajar aquí , por cierto lo realice en netbeans.
cules son las clases para crer una lista y poder arear borrar y borrar la lista
hola @elias, con listas te refieres a los arraylist? o tal vez en como crear un choice? Espero tu respuesta para poder orientarte en el tema, saludos 🙂
es un jlist es lo q llebo del programa
JList.addElement(this.jTextField1.getText());
this.jList1.setModel(JList);
}
private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {
int posi=jList1.getSelectedIndex();
if(posi>=0)
{
JList1.remove(index);
}
else{
JOptionPane.showMessageDialog(rootPane,»No hay elementos en la lista o verifique que un elemento haya sido seleccionado»);
}
}
private void jButton3MouseClicked(java.awt.event.MouseEvent evt) {
JList.removeAllElements();
this.jList1.setModel(JList);
Ola me interesa mucho tu blog y veo bueno información de apoyo a mis compromisos académicos … quisiera pedir tu colaboración en lo siguiente… en mi clase de algotimia me pidieron que hiciera una calculadora con las intrucciones for, for anidados y while .. que tenga las operaciones basicas, saque coseno, factorial … pero todo debe basarse en sumas y restas para el proceso …. quisiera saber si tienes algún material con que me pueda colaborar para tales casos … gracias 🙂
Hola @johan, en los siguientes enlaces podrás encontrar temas que te sirven para tu proyecto: for, for anidados, condicionales, operadores lógicos. Para que quede algo «presentable» (por así decirlo) es bueno hacer una interfaz gráfica, pero todavia no he llegado a ese tema 😉
necesito ayuda para hacer un programa q haga las tablas de multiplicar del 2 al 4 con for anidados nopse si puedan ayudar
String numero1;
String numero2;
int numero4;
int numero5;
int numero6;
int numero8;
int numero9;
numero1 = JOptionPane.showInputDialog(«ingrese un numero»);
if (numero1.matches(«[0-9]*»)) {
numero2 = JOptionPane.showInputDialog(«ingrese otro numero»);
if (numero2.matches(«[0-9]*»)) {
numero4 = Integer.parseInt(numero1);
numero5 = Integer.parseInt(numero2);
if (numero4 < numero5) {
for (int j = numero4; j <= numero5; j++) {
for (int i = 0; i = numero5; j–) {
for (int i = 0; i <= 10; i++) {
numero8 = j * i;
JOptionPane.showMessageDialog(null, j + "x" + i + "=" + numero8 );
}
}
}
} else {
JOptionPane.showMessageDialog(null, "solo datos numericos");
}
} else {
JOptionPane.showMessageDialog(null, "solo datos numericos");
}
0ola pz bueno yo queria pedir ayudar pz estoy estudiando esta carrera y este semestre me toco lo de programacion a objetos y queria saber si me podrian ayudar para entenderle un poco mas ala materia ya no soy muy bueno y me gustaria aprender bien mi carrera q quisiera seguir , uqria saber cuales son las librerias y lo basico para empesar a programar en objetos y usar bien el JOptionPane.showInputDialog
Hola, en el blog hay informacion que te va a interesar mucho sobre java, exactamente sobre cuadros de dialogo la info la encontraras en este post, espero que te sirva esta información.
esta bien gracias por la informacion
muchisimas gracias por tu aporte, esta era una de las parte de entrada q tenia que hacer mi programa logre terminar lo que deseaba que me hiciera el programa:), solo queria preguntarte… en la parte de JOptionPane.showInputDialog como puedo hacer para que la entrada de texto del usuario y la contraseña me aparezca en un solo cuadro de texto y no por separado. gracias
hola, quiero ver si me puedes ayudar ya que me urge, estoy teniendo problemas al realizar un programa que utilice una clase para un “Usuario” con dos atributos: LoginCorrecto y PasswordCorrecto y un método: Validar(login, pass), de tipo boolean, que se encargará de comparar los parámetros suministrados con los valores correctos. El valor de retorno será “true” si son iguales y “false” si son diferentes. De no ser el password o el user corrector permítale un máximo de 3 veces intentarlo, sino lo conoce sáquelo indicándoselo a través de un mensaje adecuado.
he intentado realizarlo de varias maneras pero no me sale te envio un poco de lo que llevo pq los otros los he borrado 🙁 a ver si me puedes ayudar orientandome como voy, porfa te lo agradeceria.
import java.io.*;
import javax.swing.JOptionPane;
class Login
{
private String usuario;
private String contraseña;
public void asignar(String us,String co){
usuario=us;
contraseña=co;
}
public boolean Validar(String usuario, String contraseña)
{
int contador=0;
if (usuario==ecruz && contraseña==xiomara){
return true;
}
else
return false;
contador= contador+1;
return contador;
}
}
bueno no se si este bien y luego voy a introducir los mensajes q eso iria en el programa principal.
Hola, mira la clase que use para tu ejercicio:
con esto no es necesario crear un método que reciba los String y los asigne a otras variables para luego usar las variables de la clase, en conclusión seria algo innecesario ya que podemos pasar directamente los valores como parámetros. La otra clase con la cual comenzamos la aplicación seria la siguiente:
Espero que esto sea lo que necesitas, éxitos 🙂
Que onda bro, verás, yo soy muy malo en programación y la verdad no se que hacer con la materia 🙁
Tu ejemplo me parece muy bueno pero ¿me dices como hacerlo sin esos applets (o jswing, no se como se llamen)?
Si no me explico, el chiste es que los mensajes solo me aparezcan en consola, claro, si no es mucho pedir y que igual des la explicación como en este, lo que pasa es que primero quiero «caminar antes de correr» y en esta materia, solamente no doy una :/
Claro que te colaboro, para mostrar los mensajes no usas JOptionPane.showMessageDialog sino un System.out.println el cual muestra lo que queramos en consola. Ahora para ingresar los datos te recomiendo que leas y veas el ejemplo del siguiente Post, ahi se muestra el ejemplo de una calculadora sin estar en el ciclo 😉 Si falta algo para aclarar me lo dices, espero te sirva.
Hola Julia, discúlpame por la demora en contestar tus comentarios; mirando tu código he encontrado una serie de errores, algunos de sintaxis y otros en la lógica con la cual llevarías el hilo de la aplicación. El primero que comento son los siguientes: Usa » » (comillas dobles) para el texto que van en los String, y para los caracteres usa las ‘ ‘ (comillas simples), o por lo menos la gran cantidad de errores que encontré son de ese tipo.
En cuanto a la «logica», me refiero a que si quieres usar símbolos para señalar al usuario el tipo de operaciones recibe estos símbolos como de tipo String o Char en el método donde pasas los parámetros, acuérdate que de igual manera tienes que pedirlo de la manera en que los recibas.
Las lineas que empiezan con System.out…… son innecesarias. Por ultimo si deseas mostrar el resultado y estas usando cuadros dialogo muestra el resultado en uno de estos, el método que tienes para resolver las operaciones devuelve un String, así que invoca este método en un cuadro de dialogo y listo.
Espero haberte guiado un poco, creo que lo he dicho y lo repetiré, no estoy para hacer los trabajos de los demás, pero si para dar una guía y compartir el conocimiento que hasta el momento he adquirido.
dime si esta bien lo que estoy haciendo, sino corrigelo por favor me servira de mucho graciaaaaaaaaaaaaaaaaas amigo
Alli te envio otra forma que lo realice pero no puedo realizar la operación dime por favor en que estoyu fallando por favor lo necesito urgente para mañana lunes 02 de julio tengo que presentarlo en clase por favor ayudame
//EJERCICIO N°02 CALCULADORA.java
import javax.swing.*;
public class EJERC_2_CALCULADORA_1 {
/** Creates a new instance of EJERC_2_CALCULADORA */
public EJERC_2_CALCULADORA_1() {
}
public static String calculadora(int n1, int n2, int operador)
{
String calculadora=»»;
switch(operador)
{
case ‘+’:
calculadora=n1+n2;
break;
case ‘-‘:
calculadora=n1-n2;
break;
case ‘*’:
calculadora=n1*n2;
break;
case ‘/’:
calculadora=n1/n2;
break;
}
return calculadora;
}
public static void main(String args[]) {
// Obtenemos los parametros, asignamos los valores.
int n1, n2, operacion, operador;
String Calculadora=»»;
//Llamamos la función
n1 = Integer.parseInt(JOptionPane.showInputDialog(» ingrese numero 1: » ));
System.out.println(» el primer numero es:»+n1);
n2 = Integer.parseInt(JOptionPane.showInputDialog(» ingrese numero 2: » ));
System.out.println(» el primer numero es:»+n2);
operacion = Integer.parseInt(JOptionPane.showInputDialog(«Ingrese la operacion a realizar (+, -, *, /): «));
System.out.println(«el caracter es:»+operación);
calculadora = (n1 ,n2 ,operación)
//operacion=resp(letra);
System.out.println(«La respuesta de la operacion es: «+calculadora);
}
//(int n1, int n2, int opercacion, String ope)
}