Calculadora Basica Java
Calculadora Basica Java
import javax.swing.*;
switch(op)
{
case 1:
n1=Double.parseDouble(JOptionPane.showInputDialog("Ingrese
numero 1"));
n2=Double.parseDouble(JOptionPane.showInputDialog("Ingrese
numero 2"));
s=n1+n2;
JOptionPane.showMessageDialog(null,"La suma es:"+s);
break;
case 2:
n1=Double.parseDouble(JOptionPane.showInputDialog("Ingrese
numero 1"));
n2=Double.parseDouble(JOptionPane.showInputDialog("Ingrese
numero 2"));
r=n1-n2;
JOptionPane.showMessageDialog(null,"La resta es:"+r);
break;
case 3:
n1=Double.parseDouble(JOptionPane.showInputDialog("Ingrese
numero 1"));
n2=Double.parseDouble(JOptionPane.showInputDialog("Ingrese
numero 2"));
m=n1*n2;
JOptionPane.showMessageDialog(null,"La multiplicacion es:"+m);
break;
case 4:
n1=Double.parseDouble(JOptionPane.showInputDialog("Ingrese
numero 1"));
n2=Double.parseDouble(JOptionPane.showInputDialog("Ingrese
numero 2"));
d=n1/n2;
JOptionPane.showMessageDialog(null,"La division es:"+d);
break;
}
}while(op!=5);
}
El proyecto esta dividido en dos partes, una el cual contiene el mtodo principal,
y la otra clase contiene la interfaz, eventos y operaciones realizadas por el
ejercicio practico. El programilla realiza las cuatro operaciones bsicas de las
matemticas (suma, resta, multiplicacin y divisin), ademas cuenta con el uso de
memorias, borrado total (pantalla y memoria) raz cuadrada, y manejo de decimales.
Bueno ya sabiendo que realiza el ejercicio, continuare mostrando el cdigo para la
aplicacin.
- CLASE MAIN
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
interfaz w = new interfaz();
// TODO code application logic here
} catch (ClassNotFoundException ex) {
Logger.getLogger(interfaz.class.getName()).log(Level.SEVERE, null,
ex);
} catch (InstantiationException ex) {
Logger.getLogger(interfaz.class.getName()).log(Level.SEVERE, null,
ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(interfaz.class.getName()).log(Level.SEVERE, null,
ex);
} catch (UnsupportedLookAndFeelException ex) {
Logger.getLogger(interfaz.class.getName()).log(Level.SEVERE, null,
ex);
}
}
if(ax.equals("Linux")){//si es un sistema linux se aplica el skin que tiene
java para linux
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
interfaz w = new interfaz();
// TODO code application logic here
} catch (ClassNotFoundException ex) {
Logger.getLogger(interfaz.class.getName()).log(Level.SEVERE, null,
ex);
} catch (InstantiationException ex) {
Logger.getLogger(interfaz.class.getName()).log(Level.SEVERE, null,
ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(interfaz.class.getName()).log(Level.SEVERE, null,
ex);
} catch (UnsupportedLookAndFeelException ex) {
Logger.getLogger(interfaz.class.getName()).log(Level.SEVERE, null,
ex);
}
}
}
}
- CLASE INTERFAZ
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Insets;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public interfaz(){
norte();
sur();
jfMain.add(pN, BorderLayout.NORTH);
jfMain.add(pS, BorderLayout.CENTER);
jfMain.setLocation(100, 80);
jfMain.setResizable(false);
jfMain.setVisible(true);
jfMain.setSize(300, 380);
jfMain.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
pN = new Panel(null);
jt1.setHorizontalAlignment(JTextField.RIGHT);
jt2.setHorizontalAlignment(JTextField.RIGHT);
jt1.setBackground(Color.white);
jt2.setBackground(Color.white);
pN.add(jt1); pN.add(jt2);
pN.setSize(270, 47);
pN.setVisible(true);
botMem();
botNum();
botOpe();
pS.add(pb1, BorderLayout.NORTH);
pS.add(pb2, BorderLayout.CENTER);
pS.add(pb3, BorderLayout.EAST);
pS.setSize(270, 330);
}
mc.addActionListener(this); mr.addActionListener(this);
ms.addActionListener(this);
mMas.addActionListener(this); mMenos.addActionListener(this);
pb1.setSize(270, 45);
pb1.setVisible(true);
}
//*****************************************
//bloque para crear los botones, aadirlos y asignar numeros
for (int i=0; i<=10; i++){
if(i<=9){
numeros[i] = new JButton(""+i);
pb2.add(numeros[i]);
numeros[i].setMargin(new Insets(1, 1, 1, 1));
numeros[i].addActionListener(this);
}
else{
numeros[i] = new JButton(".");
pb2.add(numeros[i]);
numeros[i].setMargin(new Insets(1, 1, 1, 1));
numeros[i].addActionListener(this);
}
}
//******************************************
//bloque para posicionar botones
for(int i=10; i>=0; i--){
if(i==10){
numeros[i].setBounds(121, 129, 35, 35);
}
else{
if(i<=9 && i>=7){
numeros[i].setBounds(nx3, n3y, 35, 35);
nx3-=43;
}
else if(i<=6 && i>=4){
n3y+=43;
numeros[i].setBounds(nx2, n2y, 35, 35);
nx2-=43;
}
else if(i<=3 && i>=1){
n3y+=43;
numeros[i].setBounds(nx1, n1y, 35, 35);
nx1-=43;
}
else if(i==0){
numeros[i].setBounds(35, 129, 78, 35);
}
}
}
pb2.setSize(170, 150);
pb2.setVisible(true);
}
pb3.setVisible(true);
pb3.setSize(120, 200);
}
try{
int n = Integer.parseInt(ax);
return true;
}catch(NumberFormatException e){
return false;
}
@Override
public void actionPerformed(ActionEvent e) {
String op="";
if(jt1.getText().equals("")){
ax += e.getActionCommand();
jt2.setText(ax);
}
else{
if(tipOp==0){
if(t){
ax="";
jt1.setText(jt2.getText());
ax += e.getActionCommand();
jt2.setText(ax);
t = false;
}
else{
ax="";
ax += jt2.getText()+e.getActionCommand();
jt2.setText(ax);
}
}else{
ax="";
ax += jt2.getText()+e.getActionCommand();
jt2.setText(ax);
}
}
}
else{//cuando se oprime el resto de botones
if(e.getActionCommand().equals("R") ){
jt1.setText("");
Float a = Float.parseFloat(jt2.getText());
jt2.setText(""+Math.sqrt(a));
}
if(e.getActionCommand().equals("C") ){ //para reiniciar valores y
limpiar pantalla
tipOp=0; n1 = 0; n2 =0; nr=0; jt1.setText(""); jt2.setText("0");
ax="";
}
if(e.getActionCommand().equals("MC")){//para limpiar la memoria de la
calculadora
ms.setForeground(Color.black);
jt1.setText(""); jt2.setText("0");
M=0;
}
if(e.getActionCommand().equals("MR")){//para mostrar valor almacenado
en la memoria
jt1.setText("");
jt2.setText(String.valueOf(M));
}if(e.getActionCommand().equals("MS")){//guardar un valor en la memoria
ms.setForeground(Color.red);
M = Float.parseFloat(jt2.getText());
}
if(e.getActionCommand().equals("M+")){//sumar valor de la pantalla con
el valor de la memoria
M += Float.parseFloat(jt2.getText());
}
if(e.getActionCommand().equals("M-")){//restar valor de la pantalla con
el valor de la memoria
M -= Float.parseFloat(jt2.getText());
}
if(e.getActionCommand().equals(".")){//usar el punto para los decimales
ax="";
if(numeros[10].isEnabled()){
numeros[10].setEnabled(false);
ax = jt2.getText() +".";
jt2.setText(ax);
}
}
if(e.getActionCommand().equals("+") ){//boton suma
numeros[10].setEnabled(true);
ax="";
if(tipOp==1){
ax += jt1.getText()+jt2.getText();
jt1.setText(ax+" + ");
jt2.setText("");
tipOp = 1;
}
else {
if(!t){//validacion para nueva operacion
n1 = Float.parseFloat(jt2.getText());
ax += jt2.getText();
jt1.setText(ax+" + ");
jt2.setText("");
tipOp = 1;
}
else{//usar otras operaciones con la suma
n1 = Float.parseFloat(jt2.getText());
ax += jt1.getText();
jt1.setText(ax+" + ");
jt2.setText("");
tipOp = 1;
}
}
}
}
if(e.getActionCommand().equals("-") ){//cuando se decide restar
numeros[10].setEnabled(true);
ax="";
if(tipOp==2){
ax += jt1.getText()+ jt2.getText();
jt1.setText(ax+" - ");
jt2.setText("");
tipOp = 2;
}
else{
if(!t){//validacion para nueva operacion
n1 = Float.parseFloat(jt2.getText());
ax += jt2.getText();
jt1.setText(ax+" - ");
jt2.setText("");
tipOp = 2;
}
else{//usar otras operaciones con la suma
n1 = Float.parseFloat(jt2.getText());
ax += jt1.getText();
jt1.setText(ax+" - ");
jt2.setText("");
tipOp = 2;
}
}
}
}
if(e.getActionCommand().equals("*") ){//cuando se decide
multiplicar
numeros[10].setEnabled(true);
ax="";
if(tipOp==3){
ax += jt1.getText()+jt2.getText();
jt1.setText(ax+" * ");
jt2.setText("");
tipOp = 3;
}
else{
if(!t){//validacion para nueva operacion
n1 = Float.parseFloat(jt2.getText());
ax += jt2.getText();
jt1.setText(ax+" * ");
jt2.setText("");
tipOp = 3;
}
else{//usar otras operaciones con la suma
n1 = Float.parseFloat(jt2.getText());
ax += jt1.getText();
jt1.setText(ax+" * ");
jt2.setText("");
tipOp = 3;
}
}
}
}
if(e.getActionCommand().equals("/") ){//cuando se decide dividir
numeros[10].setEnabled(true);
ax="";
if(tipOp==4){
ax += jt1.getText()+jt2.getText();
jt1.setText(ax+" / ");
jt2.setText("");
tipOp = 4;
}
else{
if(!t){//validacion para nueva operacion
n1 = Float.parseFloat(jt2.getText());
ax += jt2.getText();
jt1.setText(ax+" / ");
jt2.setText("");
tipOp = 4;
}
else{//usar otras operaciones con la suma
n1 = Float.parseFloat(jt2.getText());
ax += jt1.getText();
jt1.setText(ax+" / ");
jt2.setText("");
tipOp = 4;
}
}
}
}
if(e.getActionCommand().equals("=") && !jt2.getText().equals("")){
t = true;
if(tipOp==1){//operacion para la suma
tipOp = 0;
ax="";
ax+=jt1.getText() + jt2.getText();
jt1.setText(ax);
n2 = Float.parseFloat(jt2.getText());
nr=n1+n2;
jt2.setText(String.valueOf(nr));
}
else if(tipOp==2){ //operacion para la resta
tipOp = 0;
ax="";
ax+=jt1.getText()+jt2.getText();
jt1.setText(ax);
n2 = Float.parseFloat(jt2.getText());
nr=n1-n2;
jt2.setText(String.valueOf(nr));
}
if(tipOp==3){ //operacion para la multiplicacion
tipOp = 0;
ax="";
ax+=jt1.getText()+jt2.getText();
jt1.setText(ax);
n2 = Float.parseFloat(jt2.getText());
nr=n1*n2;
jt2.setText(String.valueOf(nr));
}
if(tipOp==4){ //operacion para la multiplicacion
if(Float.parseFloat(jt2.getText())!=0){
tipOp = 0;
ax="";
ax+=jt1.getText()+jt2.getText();
jt1.setText(ax);
n2 = Float.parseFloat(jt2.getText());
nr=n1/n2;
jt2.setText(String.valueOf(nr));
}
else
JOptionPane.showMessageDialog(null, "No se puede
realizar divison por 0");
}
}
}
}
}