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);
}
}
}
Comentarios sobre la versión: 1.0 (8)