You are on page 1of 7

import java.awt.

*;

import java.awt.event.*;

import javax.swing.*;

import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;

import javax.script.ScriptException;

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

/**

* @author jeisonnisperuza

*/

public class Calculadora extends JFrame implements ActionListener {

// argumentos y componentes

private JFrame frame;

private JPanel panel1 = new JPanel();

private JPanel panel2 = new JPanel();

private JTextField texto, campoTexto1, campoTexto2;

private String resultado;

private String formula = "";

private int a = 0;

// constructor

public Calculadora() {
setDefaultCloseOperation(Calculadora.EXIT_ON_CLOSE);

Container contenedor = getContentPane();

panel1.setLayout(new GridLayout(2, 2));

texto = new JTextField("OPERACIÓN");

texto.setEditable(false);

panel1.add(texto);

campoTexto1 = new JTextField(10);

campoTexto1.setEditable(false);

panel1.add(campoTexto1);

texto = new JTextField("RESULTADO");

texto.setEditable(false);

panel1.add(texto);

campoTexto2 = new JTextField(10);

campoTexto2.setEditable(false);

panel1.add(campoTexto2);

contenedor.add(panel1, "North");

panel2.setLayout(new FlowLayout());

for (int i = 0; i < 10; i++) {

JButton boton = new JButton("" + i);

boton.addActionListener(this);

panel2.add(boton);

JButton suma = new JButton("+");

suma.addActionListener(this);

panel2.add(suma);

JButton resta = new JButton("-");

resta.addActionListener(this);
panel2.add(resta);

JButton multiplica = new JButton("*");

multiplica.addActionListener(this);

panel2.add(multiplica);

JButton divide = new JButton("/");

divide.addActionListener(this);

panel2.add(divide);

JButton igual = new JButton("=");

igual.addActionListener(this);

panel2.add(igual);

JButton CE = new JButton("CE");

CE.addActionListener(this);

panel2.add(CE);

contenedor.add(panel2, "Center");

// propiedades del frame contenedor

this.setSize(350, 230);

this.setLocationRelativeTo(null);

this.setResizable(false);

this.setVisible(true);

public void actionPerformed(ActionEvent evento) {

ScriptEngineManager manager = new ScriptEngineManager();

ScriptEngine engine = manager.getEngineByName("js");

if (a == 1 && (!(evento.getActionCommand()).equals("="))) {

setResultado("");

if ((evento.getActionCommand()).equals("CE")) {

setFormula("");
setResultado("");

formula = "";

resultado = null;

if (!((evento.getActionCommand()).equals("=") ||
(evento.getActionCommand()).equals("CE"))) {

formula = formula + evento.getActionCommand();

setFormula(formula);

if ((evento.getActionCommand()).equals("=")) {

try {

resultado = "" + engine.eval(formula);

if (!(resultado.equals("null"))) {

if (resultado.equals("Infinity") || resultado.equals("NaN")) {

setFormula(formula);

setResultado("Math Error");

} else {

setFormula(formula);

setResultado("" + resultado);

formula = "";

} catch (ScriptException se) {

formula = "";

setResultado("Error en la sintaxis ");

a = 1;

public void setFormula(String laFormula) {


campoTexto1.setText(laFormula);

public void setResultado(String elResultado) {

campoTexto2.setText(elResultado);

public static void main(String args[]) {

new Calculadora().setTitle("Calculadora Jeison Nisperuza");

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

public class Calculadora extends JFrame implements ActionListener{


private JButton btn1,btn2,btn3,btn4,btn5;
private JTextField val1,val2,resul;

//metodo donde creo y añado los controles


public void Controles(){
//obtener panel de contenido y establecer su esquema
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout(FlowLayout.CENTER) );
//crear controles y añadir
Label lbl1 = new Label("Numero");
contenedor.add(lbl1);
val1 = new JTextField(10);
contenedor.add(val1);
Label lbl2 = new Label("Numero");
contenedor.add(lbl2);
val2 = new JTextField(10);
contenedor.add(val2);
btn1 = new JButton("+");
contenedor.add(btn1);
btn1.addActionListener(this);
btn2 = new JButton("-");
contenedor.add(btn2);
btn2.addActionListener(this);
btn3 = new JButton("x");
contenedor.add(btn3);
btn3.addActionListener(this);
btn4 = new JButton("/");
contenedor.add(btn4);
btn4.addActionListener(this);
btn5 = new JButton("Limpiar");
contenedor.add(btn5);
btn5.addActionListener(this);
resul = new JTextField(10);
contenedor.add(resul);
}

public Calculadora(){
//titulo ventana
super("Calculadora");
//cargo controles
Controles();
//tamaño ventana y mostrar y centrar
setSize(380,150);
setLocationRelativeTo(null);//centrar
setVisible(true);
}

//eventos botones
public void actionPerformed(ActionEvent e) {
double num1,num2,resu;
String resultado;
if (e.getSource()==btn1) {
if(val1.getText().equals("") || val2.getText().equals("")){
JOptionPane.showMessageDialog(null, "Los datos Están
Incompletos",
"Error",JOptionPane.ERROR_MESSAGE);
}
else{
num1=Double.parseDouble(val1.getText());
num2=Double.parseDouble(val2.getText());
resu=num1+num2;
resultado=String.valueOf(resu);
resul.setText(resultado);
}
}
if (e.getSource()==btn2) {
if(val1.getText().equals("") || val2.getText().equals("")){
JOptionPane.showMessageDialog(null, "Los datos Están
Incompletos",
"Error",JOptionPane.ERROR_MESSAGE);
}
else{
num1=Double.parseDouble(val1.getText());
num2=Double.parseDouble(val2.getText());
resu=num1-num2;
resultado=String.valueOf(resu);
resul.setText(resultado);
}
}
if (e.getSource()==btn3) {
if(val1.getText().equals("") || val2.getText().equals("")){
JOptionPane.showMessageDialog(null, "Los datos Están
Incompletos",
"Error",JOptionPane.ERROR_MESSAGE);
}
else{
num1=Double.parseDouble(val1.getText());
num2=Double.parseDouble(val2.getText());
resu=num1*num2;
resultado=String.valueOf(resu);
resul.setText(resultado);
}
}
if (e.getSource()==btn4) {
if(val1.getText().equals("") || val2.getText().equals("")){
JOptionPane.showMessageDialog(null, "Los datos Están
Incompletos",
"Error",JOptionPane.ERROR_MESSAGE);
}
else{
num1=Double.parseDouble(val1.getText());
num2=Double.parseDouble(val2.getText());
try{
resu=num1/num2;
resultado=String.valueOf(resu);
resul.setText(resultado);
}
catch(ArithmeticException ex){
JOptionPane.showMessageDialog(null, "No se Puede Dividir
Entre 0",
"Error",JOptionPane.ERROR_MESSAGE);
}

}
}
if (e.getSource()==btn5){
val1.setText("");
val2.setText("");
resul.setText("");
}
}

public static void main(String[] args) {


JFrame.setDefaultLookAndFeelDecorated(true);
Calculadora calc = new Calculadora();//Instanciamos la clase que
creamos
calc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//cerrar
ventana
}
}

You might also like