Páginas

NIMADRES

Calculadora Gráfica En Java

Hoy les mostrar como hacer una calculadora gráfica de la manera mas sencilla, esto solo en dos archivos, el primero seria en el archivo CalculadoraGrafica.java en el cual se hará el cuerpo y las funciones de la misma.
Aquí mismo se observa una vista previa de como quedaría al final, esto ustedes lo pueden modificar a su gusto, desde los colores hasta el tipo y tamaño de letra






import javax.swing.*;
import java.math.*;
import java.awt.*;
import java.awt.event.*;

public class CalculadoraGrafica extends JFrame implements ActionListener {
    private JButton btn0,btn1,btn2,btn3;
    private JButton btn4,btn5,btn6;
    private JButton btn7,btn8,btn9;
    private JButton btnMas,btnMenos,btnMultiplicacion,btnDivision,btnPotencia;
    private JButton btnPunto,btnBorrar,btnRaiz,btnIgual;
    private JPanel panel = new JPanel();
    private JTextField texto;
    private JMenuBar barraMenu;
    private JMenu menu;
    private JMenuItem subMenu;
    
    private char signo;
    private String numero = "";
    private int num0 = 0,num1 = 1;
    private int num2 = 2,num3 = 3;
    private int num4 = 4,num5 = 5;
    private int num6 = 6,num7 = 7;
    private int num8 = 8,num9 = 9,cont = 0;
    private double x,y,resp;
    private boolean punto = true;
    
    
    public CalculadoraGrafica(){
        setTitle("Calculadora");
        setVisible(true);
        setSize(320,310);
        setResizable(false);
        setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
        
        barraMenu = new JMenuBar();
        barraMenu.setBounds(0,0,30,20);
        menu = new JMenu("archivo");

        barraMenu.add(menu);
        subMenu = new JMenuItem("salir");
        menu.add(subMenu);
        
        texto = new JTextField("0");
        texto.setBounds(5,25,270,25);
        texto.setHorizontalAlignment(JTextField.RIGHT);
        texto.setForeground(Color.black);
        add(texto);
        texto.setEditable(false);
        
        btn0 = new JButton("0");
        btn0.setBounds(65,205,50,45);
        btn0.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btn0);
        
        btn1 = new JButton("1");
        btn1.setBounds(5,155,50,45);
        btn1.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btn1);
        btn2 = new JButton("2");
        btn2.setBounds(65,155,50,45);
        btn2.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btn2);
        btn3 = new JButton("3");
        btn3.setBounds(125,155,50,45);
        btn3.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btn3);
        
        btn4 = new JButton("4");
        btn4.setBounds(5,105,50,45);
        btn4.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btn4);
        btn5 = new JButton("5");
        btn5.setBounds(65,105,50,45);
        btn5.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btn5);
        btn6 = new JButton("6");
        btn6.setBounds(125,105,50,45);
        btn6.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btn6);
        
        btn7 = new JButton("7");
        btn7.setBounds(5,55,50,45);
        btn7.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btn7);
        btn8 = new JButton("8");
        btn8.setBounds(65,55,50,45);
        btn8.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btn8);
        btn9 = new JButton("9");
        btn9.setBounds(125,55,50,45);
        btn9.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btn9);
        
        btnPunto = new JButton(".");
        btnPunto.setBounds(5,205,50,45);
        btnPunto.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btnPunto);
        btnIgual = new JButton("=");
        btnIgual.setBounds(125,205,50,45);
        btnIgual.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btnIgual);
        
        btnMas = new JButton("+");
        btnMas.setBounds(200,105,50,45);
        btnMas.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btnMas);
        btnMenos = new JButton("--");
        btnMenos.setBounds(260,155,50,45);
        btnMenos.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btnMenos);
        btnMultiplicacion = new JButton("x");
        btnMultiplicacion.setBounds(260,55,50,45);
        btnMultiplicacion.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btnMultiplicacion);
        btnDivision = new JButton("/");
        btnDivision.setBounds(200,55,50,45);
        btnDivision.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btnDivision);
        btnPotencia = new JButton("^");
        btnPotencia.setBounds(260,105,50,45);
        btnPotencia.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btnPotencia);
        btnRaiz = new JButton("sqrt");
        btnRaiz.setBounds(200,205,110,45);
        btnRaiz.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btnRaiz);
        btnBorrar = new JButton("CE");
        btnBorrar.setBounds(200,155,50,45);
        btnBorrar.setCursor(new Cursor(Cursor.HAND_CURSOR));
        add(btnBorrar);
    
        panel.setBounds(5,5,10,10);
        panel.setBackground(Color.gray);
        this.add(panel,java.awt.BorderLayout.CENTER);
        this.add(barraMenu,java.awt.BorderLayout.NORTH);
        subMenu.addActionListener(this);
        
        btn9.addActionListener(this);
        btn8.addActionListener(this);
        btn7.addActionListener(this);
        btn6.addActionListener(this);
        btn5.addActionListener(this);
        btn4.addActionListener(this);
        btn3.addActionListener(this);
        btn2.addActionListener(this);
        btn1.addActionListener(this);
        btn0.addActionListener(this);
        btnMas.addActionListener(this);
        btnMenos.addActionListener(this);
        btnMultiplicacion.addActionListener(this);
        btnDivision.addActionListener(this);
        btnRaiz.addActionListener(this);
        btnPotencia.addActionListener(this);
        btnIgual.addActionListener(this);
        btnBorrar.addActionListener(this);
        btnPunto.addActionListener(this);
    }
    
    public void actionPerformed(ActionEvent e){
        if(e.getSource().equals(subMenu)){
            System.exit(0);
        }
        if(e.getSource().equals(btn9)){
            texto.setText(num9+"");
            numero += texto.getText();
            texto.setText(numero);
        }
        if(e.getSource().equals(btn8)){
            texto.setText(num8+"");
            numero += texto.getText();
            texto.setText(numero);
        }
        if(e.getSource().equals(btn7)){
            texto.setText(num7+"");
            numero += texto.getText();
            texto.setText(numero);
        }
        if(e.getSource().equals(btn6)){
            texto.setText(num6+"");
            numero += texto.getText();
            texto.setText(numero);
        }
        if(e.getSource().equals(btn5)){
            texto.setText(num5+"");
            numero += texto.getText();
            texto.setText(numero);
        }
        if(e.getSource().equals(btn4)){
            texto.setText(num4+"");
            numero += texto.getText();
            texto.setText(numero);
        }
        if(e.getSource().equals(btn3)){
            texto.setText(num3+"");
            numero += texto.getText();
            texto.setText(numero);
        }
        if(e.getSource().equals(btn2)){
            texto.setText(num2+"");
            numero += texto.getText();
            texto.setText(numero);
        }
        if(e.getSource().equals(btn1)){
            texto.setText(num1+"");
            numero += texto.getText();
            texto.setText(numero);
        }
        if(e.getSource().equals(btn0)){
            texto.setText(num0+"");
            numero += texto.getText();
            texto.setText(numero);
        }
        if(e.getSource().equals(btnMas)){
            x = Double.parseDouble(texto.getText());
            signo = '+';
            numero ="";
            punto = true;
        }
        if(e.getSource().equals(btnMenos)){
            x = Double.parseDouble(texto.getText());
            signo = '-';
            numero ="";
            punto = true;
        }
        if(e.getSource().equals(btnMultiplicacion)){
            x = Double.parseDouble(texto.getText());
            signo = '*';
            numero ="";
            punto = true;
        }
        if(e.getSource().equals(btnDivision)){
            x = Double.parseDouble(texto.getText());
            signo = '/';
            numero ="";
            punto = true;
        }
        if(e.getSource().equals(btnPotencia)){
            x = Double.parseDouble(texto.getText());
            resp = Math.pow(x,2);
            texto.setText(resp+"");
            numero ="";
            punto = true;
        }
        if(e.getSource().equals(btnRaiz)){
            x = Double.parseDouble(texto.getText());
            if(x < 0){
                texto.setText("No mame doña");
            }
            else{
                resp = Math.sqrt(x);
                texto.setText(resp+"");
            }
            punto = true;
        }
        if(e.getSource().equals(btnPunto)){
            if(punto){
                texto.setText(".");
                numero += texto.getText();
                texto.setText(numero);
                punto = false;
            }
        }
        if(e.getSource().equals(btnBorrar)){
            numero = "";
            x = 0.0;
            resp = 0.0;
            y = 0.0;
            texto.setText("0");
        }
        if(e.getSource().equals(btnIgual)){
            y = Double.parseDouble(texto.getText());
            numero ="";
            if(signo =='+'){
                resp = x + y;
                texto.setText(resp+"");
            }
            if(signo == '-'){
                resp = x - y;
                texto.setText(resp+"");
            }
            if(signo == '*'){
                resp = x * y;
                texto.setText(resp+"");
            }
            if(signo == '/'){
                if( y != 0){
                    resp = x / y;
                    texto.setText(resp+"");
                }
                else{
                    texto.setText("No mame doña");
                }
            }
            if (signo == 'p'){
                resp = Math.pow(x,y);
                texto.setText(resp+"");
            }
        }
    }
}

Después procedemos a hacer la clase Main.java que por lo general, cuando se hace un programa gráfico esta clase Main, así como se vera a continuación se puede reutilizar para la mayoría de los programas, solo se necesita cambiar el nombre de la clase que se desea ejecutar, en este caso utilizaremos CalculadoraGrafica()

public class Main{
    public static void main(String args[]){
        java.awt.EventQueue.invokeLater(new Runnable(){
            public void run(){
                new CalculadoraGrafica().setVisible(true);
            }
        });
    }
}


No hay comentarios:

Publicar un comentario