package paquetes;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Font;
import java.awt.Color;
import javax.swing.SwingConstants;
import java.awt.Toolkit;
public class Calculando {
private JFrame frame;
private JTextField txt_pantalla;
//lista de variables para controlar activacion y desactivacio de botones
boolean punto=false, cero=false,operador=true,respuesta=true;
/**
* Launch the application.
*/
public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() {
try { Calculando window = new Calculando();
window.frame.setVisible(true);
} catch (Exception e) { e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Calculando() { initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
ScriptEngineManager maneger = new ScriptEngineManager(); //javascript para java de vercion 6 en adelante
ScriptEngine engine=maneger.getEngineByName("js");
//cada boton declarado al inicio para poderse usar en diversar partes
JButton bt_coseno = new JButton("COS"); JButton bt_seno = new JButton("SIN"); JButton bt_exponencial = new JButton("EXP"); JButton bt_porciento = new JButton("%"); JButton bt_multiplicar = new JButton("*"); JButton bt_punto = new JButton("."); JButton bt_sumar = new JButton("+"); JButton bt_resultado = new JButton("="); JButton bt_restar = new JButton("-"); JButton bt_dividir = new JButton("/");
frame = new JFrame();
frame.setResizable(false);
frame.getContentPane().setBackground(Color.WHITE);
frame.setForeground(Color.BLACK);
frame.setIconImage(Toolkit.getDefaultToolkit().getImage("C:\\Users\\ACER\\Pictures\\3d_15.jpg")); frame.setBackground(Color.DARK_GRAY);
frame.setBounds(100, 100, 432, 432);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
txt_pantalla = new JTextField();
txt_pantalla.setEditable(false);
txt_pantalla.setBackground(Color.BLACK);
txt_pantalla.setForeground(Color.WHITE);
txt_pantalla.setHorizontalAlignment(SwingConstants.CENTER);
txt_pantalla.setFont(new Font("Tahoma", Font.BOLD, 20)); txt_pantalla.setBounds(22, 39, 388, 57);
frame.getContentPane().add(txt_pantalla);
txt_pantalla.setColumns(10);
bt_resultado.setForeground(Color.RED);
bt_resultado.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_resultado.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { operador=true;
respuesta=false;
bt_resultado.setEnabled(false);
bt_sumar.setEnabled(false);
bt_restar.setEnabled(false);
bt_multiplicar.setEnabled(false);
bt_dividir.setEnabled(false);
bt_coseno.setEnabled(false);
bt_seno.setEnabled(false);
bt_punto.setEnabled(false);
try { Object prueba = engine.eval(txt_pantalla.getText()); //convertimos a objeto todo lo que tenemos en txt_papntalla
String x = String.valueOf(prueba); //evaluamos y calculamos las operaciones
txt_pantalla.setText(x); //mostrasmos resultado
} catch (ScriptException e1) { // TODO Auto-generated catch block
// e1.printStackTrace();
}
}
});
bt_resultado.setBounds(259, 345, 151, 45);
frame.getContentPane().add(bt_resultado);
bt_seno.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { operador=true;
respuesta=false;
bt_resultado.setEnabled(false);
bt_sumar.setEnabled(false);
bt_restar.setEnabled(false);
bt_multiplicar.setEnabled(false);
bt_dividir.setEnabled(false);
bt_coseno.setEnabled(false);
bt_seno.setEnabled(false);
bt_punto.setEnabled(false);
try { Object txt = engine.eval(txt_pantalla.getText());
String numero = String.valueOf(txt);
//System.out.println(prueba);
Double x = Double.parseDouble(numero);
float resultado=(float) Math.sin(x); //calcula seno
String txt2= String.valueOf(resultado);
txt_pantalla.setText(txt2);
//System.out.println(x);
} catch (ScriptException e1) { // TODO Auto-generated catch block
// e1.printStackTrace();
}
}
});
bt_seno.setFont(new Font("Tahoma", Font.BOLD, 11)); bt_seno.setForeground(Color.BLUE);
bt_seno.setBounds(341, 136, 69, 43);
frame.getContentPane().add(bt_seno);
bt_sumar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { operador=true;
bt_resultado.setEnabled(false);
bt_sumar.setEnabled(false);
bt_restar.setEnabled(false);
bt_multiplicar.setEnabled(false);
bt_dividir.setEnabled(false);
bt_coseno.setEnabled(false);
bt_seno.setEnabled(false);
bt_punto.setEnabled(false);
if (txt_pantalla.getText().length()>0) { txt_pantalla.setText(txt_pantalla.getText()+"+");
}
else { txt_pantalla.setText("+"); }
}
});
bt_sumar.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_sumar.setBounds(259, 291, 69, 43);
frame.getContentPane().add(bt_sumar);
bt_restar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { operador=true;
bt_resultado.setEnabled(false);
bt_sumar.setEnabled(false);
bt_restar.setEnabled(false);
bt_multiplicar.setEnabled(false);
bt_dividir.setEnabled(false);
bt_coseno.setEnabled(false);
bt_seno.setEnabled(false);
bt_exponencial.setEnabled(false);
if (txt_pantalla.getText().length()>0) { txt_pantalla.setText(txt_pantalla.getText()+"-");
}
else { txt_pantalla.setText("-"); }
}
});
bt_restar.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_restar.setBounds(259, 240, 69, 43);
frame.getContentPane().add(bt_restar);
bt_dividir.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { operador=true;
bt_resultado.setEnabled(false);
bt_sumar.setEnabled(false);
bt_restar.setEnabled(false);
bt_multiplicar.setEnabled(false);
bt_dividir.setEnabled(false);
bt_coseno.setEnabled(false);
bt_seno.setEnabled(false);
bt_punto.setEnabled(false);
if (txt_pantalla.getText().length()>0) { txt_pantalla.setText(txt_pantalla.getText()+"/");
}
else { txt_pantalla.setText("/"); }
}
});
bt_dividir.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_dividir.setBounds(259, 134, 69, 43);
frame.getContentPane().add(bt_dividir);
bt_exponencial.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { respuesta=false;
txt_pantalla.setText("");
try { String numero, exponete;
numero= JOptionPane.showInputDialog("Numero: "); exponete= JOptionPane.showInputDialog("Exponete: "); Double x1 = Double.parseDouble(numero);
Double x2 = Double.parseDouble(exponete);
float resultado=(float) Math.pow(x1, x2);
String txt_expo= String.valueOf(resultado);
txt_pantalla.setText(txt_expo);
} catch (Exception e2) { // TODO: handle exception
}
}
});
bt_coseno.setFont(new Font("Tahoma", Font.BOLD, 11)); bt_coseno.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { operador=true;
respuesta=false;
bt_resultado.setEnabled(false);
bt_sumar.setEnabled(false);
bt_restar.setEnabled(false);
bt_multiplicar.setEnabled(false);
bt_dividir.setEnabled(false);
bt_coseno.setEnabled(false);
bt_seno.setEnabled(false);
bt_punto.setEnabled(false);
try { Object txt = engine.eval(txt_pantalla.getText());
String numero = String.valueOf(txt);
//System.out.println(prueba);
Double x = Double.parseDouble(numero);
float resultado=(float) Math.cos(x);
String txt2= String.valueOf(resultado);
txt_pantalla.setText(txt2);
//System.out.println(x);
} catch (ScriptException e1) { // TODO Auto-generated catch block
// e1.printStackTrace();
}
}
});
bt_coseno.setForeground(Color.BLUE);
bt_coseno.setBounds(341, 190, 69, 43);
frame.getContentPane().add(bt_coseno);
bt_exponencial.setFont(new Font("Tahoma", Font.BOLD, 11)); bt_exponencial.setForeground(Color.BLUE);
bt_exponencial.setBounds(341, 244, 69, 43);
frame.getContentPane().add(bt_exponencial);
JButton bt_area = new JButton("AREA"); bt_area.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { respuesta=false;
txt_pantalla.setText("");
try { String base, altura;
base= JOptionPane.showInputDialog("Base: "); altura= JOptionPane.showInputDialog("Altura: "); float x1 = Float.parseFloat(base);
float x2 = Float.parseFloat(altura);
float resultado= (x1 * x2 )/2;
String area= String.valueOf(resultado);
txt_pantalla.setText("Base ("+base+"*"+altura+")/2 ="+area); // calculo de area
} catch (Exception e2) { // TODO: handle exception
}
}
});
bt_area.setFont(new Font("Tahoma", Font.BOLD, 11)); bt_area.setForeground(Color.BLUE);
bt_area.setBounds(341, 291, 69, 43);
frame.getContentPane().add(bt_area);
JButton bt_limpiar_uno = new JButton("CE"); bt_limpiar_uno.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { operador=true;
bt_resultado.setEnabled(false);
bt_sumar.setEnabled(false);
bt_restar.setEnabled(false);
bt_multiplicar.setEnabled(false);
bt_dividir.setEnabled(false);
bt_coseno.setEnabled(false);
bt_seno.setEnabled(false);
bt_punto.setEnabled(false);
if(respuesta==false){ respuesta=true;
txt_pantalla.setText(""); }
if (txt_pantalla.getText().length()>0) {
String cadena= txt_pantalla.getText();
int letras= cadena.length();
cadena= cadena.substring(0, letras-1);
txt_pantalla.setText(cadena);
}
}
});
bt_limpiar_uno.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_limpiar_uno.setBounds(22, 134, 69, 43);
frame.getContentPane().add(bt_limpiar_uno);
JButton bt_limpiar_todo = new JButton("C"); bt_limpiar_todo.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { operador=true;
bt_resultado.setEnabled(false);
bt_sumar.setEnabled(false);
bt_restar.setEnabled(false);
bt_multiplicar.setEnabled(false);
bt_dividir.setEnabled(false);
bt_coseno.setEnabled(false);
bt_seno.setEnabled(false);
bt_punto.setEnabled(false);
txt_pantalla.setText("");
if(respuesta==false){ respuesta=true;
}
}
});
bt_limpiar_todo.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_limpiar_todo.setBounds(101, 134, 69, 43);
frame.getContentPane().add(bt_limpiar_todo);
bt_porciento.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { respuesta=false;
txt_pantalla.setText(""); try { String numero, porcentaje;
numero= JOptionPane.showInputDialog("Numero: "); porcentaje= JOptionPane.showInputDialog("Porcentage: "); //String numero = String.valueOf(txt);
//System.out.println(prueba);
float x1 = Float.parseFloat(numero);
float x2 = Float.parseFloat(porcentaje);
float resultado= (x1 * x2 )/100;
String porciento= String.valueOf(resultado);
txt_pantalla.setText("El "+porcentaje+"% de:"+numero+ " es: "+porciento); } catch (Exception e2) { // TODO: handle exception
}
}
});
bt_porciento.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_porciento.setBounds(180, 134, 69, 43);
frame.getContentPane().add(bt_porciento);
bt_multiplicar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { operador=true;
bt_resultado.setEnabled(false);
bt_sumar.setEnabled(false);
bt_restar.setEnabled(false);
bt_multiplicar.setEnabled(false);
bt_dividir.setEnabled(false);
bt_coseno.setEnabled(false);
bt_seno.setEnabled(false);
bt_punto.setEnabled(false);
if (txt_pantalla.getText().length()>0) { txt_pantalla.setText(txt_pantalla.getText()+"*");
}
else { txt_pantalla.setText("*"); }
}
});
bt_multiplicar.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_multiplicar.setBounds(259, 186, 69, 43);
frame.getContentPane().add(bt_multiplicar);
JButton bt_siete = new JButton("7"); bt_siete.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(operador==true){ operador=false;
bt_punto.setEnabled(true);
}
bt_resultado.setEnabled(true);
bt_sumar.setEnabled(true);
bt_restar.setEnabled(true);
bt_multiplicar.setEnabled(true);
bt_dividir.setEnabled(true);
bt_coseno.setEnabled(true);
bt_seno.setEnabled(true);
if(respuesta==false){ respuesta=true;
txt_pantalla.setText(""); }
if (txt_pantalla.getText().length()>0) { txt_pantalla.setText(txt_pantalla.getText()+"7");
}
else { txt_pantalla.setText("7"); }
}
});
bt_siete.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_siete.setBounds(22, 186, 69, 43);
frame.getContentPane().add(bt_siete);
JButton bt_ocho = new JButton("8"); bt_ocho.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(operador==true){ operador=false;
bt_punto.setEnabled(true);
}
bt_resultado.setEnabled(true);
bt_sumar.setEnabled(true);
bt_restar.setEnabled(true);
bt_multiplicar.setEnabled(true);
bt_dividir.setEnabled(true);
bt_coseno.setEnabled(true);
bt_seno.setEnabled(true);
if(respuesta==false){ respuesta=true;
txt_pantalla.setText(""); }
if (txt_pantalla.getText().length()>0) { txt_pantalla.setText(txt_pantalla.getText()+"8");
}
else { txt_pantalla.setText("8"); }
}
});
bt_ocho.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_ocho.setBounds(101, 188, 69, 43);
frame.getContentPane().add(bt_ocho);
JButton bt_nueve = new JButton("9"); bt_nueve.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(operador==true){ operador=false;
bt_punto.setEnabled(true);
}
bt_resultado.setEnabled(true);
bt_sumar.setEnabled(true);
bt_restar.setEnabled(true);
bt_multiplicar.setEnabled(true);
bt_dividir.setEnabled(true);
bt_coseno.setEnabled(true);
bt_seno.setEnabled(true);
if(respuesta==false){ respuesta=true;
txt_pantalla.setText(""); }
if (txt_pantalla.getText().length()>0) { txt_pantalla.setText(txt_pantalla.getText()+"9");
}
else { txt_pantalla.setText("9"); }
}
});
bt_nueve.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_nueve.setBounds(180, 186, 69, 43);
frame.getContentPane().add(bt_nueve);
JButton bt_cuatro = new JButton("4"); bt_cuatro.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(operador==true){ operador=false;
bt_punto.setEnabled(true);
}
bt_resultado.setEnabled(true);
bt_sumar.setEnabled(true);
bt_restar.setEnabled(true);
bt_multiplicar.setEnabled(true);
bt_dividir.setEnabled(true);
bt_coseno.setEnabled(true);
bt_seno.setEnabled(true);
if(respuesta==false){ respuesta=true;
txt_pantalla.setText(""); }
if (txt_pantalla.getText().length()>0) { txt_pantalla.setText(txt_pantalla.getText()+"4");
}
else { txt_pantalla.setText("4"); }
}
});
bt_cuatro.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_cuatro.setBounds(22, 240, 69, 43);
frame.getContentPane().add(bt_cuatro);
JButton bt_cinco = new JButton("5"); bt_cinco.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(operador==true){ operador=false;
bt_punto.setEnabled(true);
}
bt_resultado.setEnabled(true);
bt_sumar.setEnabled(true);
bt_restar.setEnabled(true);
bt_multiplicar.setEnabled(true);
bt_dividir.setEnabled(true);
bt_coseno.setEnabled(true);
bt_seno.setEnabled(true);
if(respuesta==false){ respuesta=true;
txt_pantalla.setText(""); }
if (txt_pantalla.getText().length()>0) { txt_pantalla.setText(txt_pantalla.getText()+"5");
}
else { txt_pantalla.setText("5"); }
}
});
bt_cinco.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_cinco.setBounds(101, 242, 69, 43);
frame.getContentPane().add(bt_cinco);
JButton bt_seis = new JButton("6"); bt_seis.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(operador==true){ operador=false;
bt_punto.setEnabled(true);
}
bt_resultado.setEnabled(true);
bt_sumar.setEnabled(true);
bt_restar.setEnabled(true);
bt_multiplicar.setEnabled(true);
bt_dividir.setEnabled(true);
bt_coseno.setEnabled(true);
bt_seno.setEnabled(true);
if(respuesta==false){ respuesta=true;
txt_pantalla.setText(""); }
if (txt_pantalla.getText().length()>0) { txt_pantalla.setText(txt_pantalla.getText()+"6");
}
else { txt_pantalla.setText("6"); }
}
});
bt_seis.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_seis.setBounds(180, 242, 69, 43);
frame.getContentPane().add(bt_seis);
JButton bt_uno = new JButton("1"); bt_uno.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(operador==true){ operador=false;
bt_punto.setEnabled(true);
}
bt_resultado.setEnabled(true);
bt_sumar.setEnabled(true);
bt_restar.setEnabled(true);
bt_multiplicar.setEnabled(true);
bt_dividir.setEnabled(true);
bt_coseno.setEnabled(true);
bt_seno.setEnabled(true);
if(respuesta==false){ respuesta=true;
txt_pantalla.setText(""); }
if (txt_pantalla.getText().length()>0) { txt_pantalla.setText(txt_pantalla.getText()+"1");
}
else { txt_pantalla.setText("1"); }
}
});
bt_uno.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_uno.setBounds(22, 291, 69, 43);
frame.getContentPane().add(bt_uno);
JButton bt_dos = new JButton("2"); bt_dos.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(operador==true){ operador=false;
bt_punto.setEnabled(true);
}
bt_resultado.setEnabled(true);
bt_sumar.setEnabled(true);
bt_restar.setEnabled(true);
bt_multiplicar.setEnabled(true);
bt_dividir.setEnabled(true);
bt_coseno.setEnabled(true);
bt_seno.setEnabled(true);
if(respuesta==false){ respuesta=true;
txt_pantalla.setText(""); }
if (txt_pantalla.getText().length()>0) { txt_pantalla.setText(txt_pantalla.getText()+"2");
}
else { txt_pantalla.setText("2"); }
}
});
bt_dos.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_dos.setBounds(101, 291, 69, 43);
frame.getContentPane().add(bt_dos);
JButton bt_tres = new JButton("3"); bt_tres.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(operador==true){ operador=false;
bt_punto.setEnabled(true);
}
bt_resultado.setEnabled(true);
bt_sumar.setEnabled(true);
bt_restar.setEnabled(true);
bt_multiplicar.setEnabled(true);
bt_dividir.setEnabled(true);
bt_coseno.setEnabled(true);
bt_seno.setEnabled(true);
if(respuesta==false){ respuesta=true;
txt_pantalla.setText(""); }
if (txt_pantalla.getText().length()>0) { txt_pantalla.setText(txt_pantalla.getText()+"3");
}
else { txt_pantalla.setText("3"); }
}
});
bt_tres.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_tres.setBounds(180, 291, 69, 43);
frame.getContentPane().add(bt_tres);
JButton bt_cero = new JButton("0"); bt_cero.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(operador==true){ operador=false;
bt_punto.setEnabled(true);
}
bt_resultado.setEnabled(true);
bt_sumar.setEnabled(true);
bt_restar.setEnabled(true);
bt_multiplicar.setEnabled(true);
bt_dividir.setEnabled(true);
bt_coseno.setEnabled(true);
bt_seno.setEnabled(true);
if(respuesta==false){ respuesta=true;
txt_pantalla.setText(""); }
if (txt_pantalla.getText().length()>0) { txt_pantalla.setText(txt_pantalla.getText()+"0");
}
else { txt_pantalla.setText("0"); }
}
});
bt_cero.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_cero.setBounds(22, 346, 148, 43);
frame.getContentPane().add(bt_cero);
bt_punto.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { bt_resultado.setEnabled(false);
bt_sumar.setEnabled(false);
bt_restar.setEnabled(false);
bt_multiplicar.setEnabled(false);
bt_dividir.setEnabled(false);
bt_coseno.setEnabled(false);
bt_seno.setEnabled(false);
bt_punto.setEnabled(false);
if (txt_pantalla.getText().length()>0) { txt_pantalla.setText(txt_pantalla.getText()+".");
}
else { txt_pantalla.setText("."); }
}
});
bt_punto.setFont(new Font("Tahoma", Font.BOLD, 20)); bt_punto.setBounds(180, 346, 69, 43);
frame.getContentPane().add(bt_punto);
//############################################################################//
if(txt_pantalla.getText().length()==0){ //al inicio desactivamos lo que no se usaremos asta que tengamos un texto
bt_resultado.setEnabled(false);
bt_sumar.setEnabled(false);
bt_restar.setEnabled(false);
bt_multiplicar.setEnabled(false);
bt_dividir.setEnabled(false);
bt_coseno.setEnabled(false);
bt_seno.setEnabled(false);
bt_punto.setEnabled(false);
}
}
}