Calculadora

Calculadora Realizada con Java

Paso 1. Creamos nuestro Proyecto en java, en este caso lo llamaremos Calculadora..15

Paso 2. Creamos El Paquete Calculadora:

3

Paso 3.  Creamos La Clase Calculadora en el paquete Calculadora..

2

6

Paso 4. Creamos los Objetos que Utilizaremos:

public class Calculadora extends JFrame{        
        public JButton btnUno=new JButton("1");
	public JButton btnDos=new JButton("2");
	public JButton btnTres=new JButton("3");
	public JButton btnCuatro=new JButton("4");
	public JButton btnCinco=new JButton("5");
	public JButton btnSeis=new JButton("6");
	public JButton btnSiete=new JButton("7");
	public JButton btnOcho=new JButton("8");
	public JButton btnNueve=new JButton("9");
	public JButton btnCero=new JButton("0");
	public JButton btnPunto=new JButton(".");
	public JButton btnIgual=new JButton("=");
	public JButton btnMas=new JButton("+");
	public JButton btnMenos=new JButton("-");
	public JButton btnPor=new JButton("x");
	public JButton btnEntre=new JButton("/");
	public JButton btnCe=new JButton("CE");
	public JButton btnAC=new JButton("AC");
	public JTextField pantalla=new JTextField();
	public JCheckBox chLetra1=new JCheckBox("Arial");
	public JCheckBox chLetra2=new JCheckBox("Times");
	public JCheckBox chLetra3=new JCheckBox("Comic");
	public JCheckBox chTamanio1=new JCheckBox("20");
	public JCheckBox chTamanio2=new JCheckBox("30");
	public JCheckBox chTamanio3=new JCheckBox("40");
	public JCheckBox chColor1=new JCheckBox("Rojp");
	public JCheckBox chColor2=new JCheckBox("Verde");
	public JCheckBox chColor3=new JCheckBox("Azul");
	public JLabel lblRojo=new JLabel("R");
	public JLabel lblVerde=new JLabel("G");
	public JLabel lblAzul=new JLabel("B");
	public JTextField txtAzul=new JTextField();
	public JTextField txtVerde=new JTextField();
	public JTextField txtRojo=new JTextField();
	public JComboBox cbAzul=new JComboBox();
	public JComboBox cbVerde=new JComboBox();
	public JComboBox cbRojo=new JComboBox();
	public JButton btnPrintarTxt=new JButton("Pintar");
	public JButton btnPrintarCmb=new JButton("Pintar");
	public ButtonGroup grupoLetras=new ButtonGroup();
	public ButtonGroup grupoTamanios=new ButtonGroup();
	public ButtonGroup grupoColores=new ButtonGroup();

Paso 5. Creamos Variables para poder modificar las letras de los Botones y un Objeto de la Clase Font..

public String letra="Arial";
public int tipo=1;
public int tamanio=20;
public Font letraBotones=new Font(letra,tipo,tamanio);
public boolean elPunto=true;
public boolean inicio=true;
public double total;
public String operacion="";

Paso 6. Creamos el Constructor de la Clase Calculadora.

public Calculadora(){

}

Paso 7.  Asignamos el tipo de ordenamiento (Layout)  a nuestra ventana que es este caso sera por coordenadas. y le damos el tamaño que tendra la ventana dentro del constructor

setLayout(null);
setSize(430, 600);

Paso 8: Le asignamos coordenadas a cada uno de los componentes que estarán visibles.. (dentro del constructor)

               pantalla.setBounds(10, 10, 270, 60);
		btnEntre.setBounds(10, 80, 60, 60);
		btnPor.setBounds(80, 80, 60, 60);
		btnMenos.setBounds(150, 80, 60, 60);
		btnMas.setBounds(220, 80, 60, 60);
 
		btnSiete.setBounds(10, 150, 60, 60);
		btnOcho.setBounds(80, 150, 60, 60);
		btnNueve.setBounds(150, 150, 60, 60);
		btnAC.setBounds(220, 150, 60, 60);
 
		btnCuatro.setBounds(10, 220, 60, 60);
		btnCinco.setBounds(80, 220, 60, 60);
		btnSeis.setBounds(150, 220, 60, 60);
		btnCe.setBounds(220, 220, 60, 60);
 
		btnUno.setBounds(10, 290, 60, 60);
		btnDos.setBounds(80, 290, 60, 60);
		btnTres.setBounds(150, 290, 60, 60);
		btnIgual.setBounds(220, 290, 60, 130);
		btnCero.setBounds(10, 360, 130, 60);
		btnPunto.setBounds(150, 360, 60, 60);
 
		chLetra1.setBounds(285, 70, 70, 30);
		chLetra2.setBounds(285, 100, 70, 30);
		chLetra3.setBounds(285, 130, 70, 30);
 
		chTamanio1.setBounds(285, 170, 40, 30);
		chTamanio2.setBounds(285, 200, 40, 30);
		chTamanio3.setBounds(285, 230, 40, 30);
 
		chColor1.setBounds(285, 270, 80, 30);
		chColor2.setBounds(285, 300, 80, 30);
		chColor3.setBounds(285, 330, 70, 30);
 
		lblRojo.setBounds(10, 430, 30, 30);
		lblRojo.setFont(new Font("Arial", 1, 15));
		lblVerde.setBounds(80, 430, 30, 30);
		lblVerde.setFont(new Font("Arial", 1, 15));
		lblAzul.setBounds(155, 430, 30, 30);
		lblAzul.setFont(new Font("Arial", 1, 15));
 
		txtRojo.setBounds(25, 430, 50, 25);
		txtVerde.setBounds(100, 430, 50, 25);
		txtAzul.setBounds(170, 430, 50, 25);
		btnPrintarTxt.setBounds(240, 430, 70, 25);
 
		cbRojo.setBounds(10, 460, 70, 25);
		cbVerde.setBounds(85, 460, 70, 25);
		cbAzul.setBounds(165, 460, 70, 25);
		btnPrintarCmb.setBounds(240, 460, 70, 25);

Paso 9:  ahora por medio deun ciclo FOR  le agregaremos los numero que se visualizaran en los comboBox de los colores:

                for (int x = 0; x <= 255; x++) {
			cbRojo.addItem(String.valueOf(x));
			cbAzul.addItem(String.valueOf(x));
			cbVerde.addItem(String.valueOf(x));
		}

Paso 10: Ahora hay que Agregar todos lo componentes al contenedor es decir a la clase (dentro del constructor):

               add(pantalla);
		add(btnEntre);
		add(btnPor);
		add(btnMenos);
		add(btnMas);
		add(btnSiete);
		add(btnOcho);
		add(btnNueve);
		add(btnAC);
		add(btnCuatro);
		add(btnCinco);
		add(btnSeis);
		add(btnCe);
		add(btnUno);
		add(btnDos);
		add(btnTres);
		add(btnIgual);
		add(btnCero);
		add(btnPunto);
		add(chLetra1);
		add(chLetra2);
		add(chLetra3);
		add(chTamanio1);
		add(chTamanio2);
		add(chTamanio3);
		add(chColor1);
		add(chColor2);
		add(chColor3);
		add(lblRojo);
		add(lblAzul);
		add(lblVerde);
		add(txtAzul);
		add(txtVerde);
		add(txtRojo);
		add(btnPrintarTxt);
		add(cbAzul);
		add(cbRojo);
		add(cbVerde);
		add(btnPrintarCmb);

Paso 11: Agregamos los JChekBox a los grupo que corresponden de los ButtonGroups, que estos nos ayudaran a que solo uno del grupo sea elegido es Decir, solo podemos elegir un color y no dos (dentro del constructor)..

        grupoLetras.add(chLetra1);
	grupoLetras.add(chLetra2);
	grupoLetras.add(chLetra3);
	grupoTamanios.add(chTamanio1);
	grupoTamanios.add(chTamanio2);
	grupoTamanios.add(chTamanio3);
	grupoColores.add(chColor1);
	grupoColores.add(chColor2);
	grupoColores.add(chColor3);

Paso 12: Le damos Formato a nuestro JTextField donde desplegamos los números de la calculadora, Agregándole un tipo y tamaño de letra..

                pantalla.setFont(new Font("Arial", 1, 30));
		pantalla.setHorizontalAlignment(JLabel.RIGHT);
		pantalla.setEditable(false);

Paso 13: Por ultimo con este cconstructor tenemos que decirle a nuestro programa que sea visible la ventana y que cuando opriman el botón de cerrar, termine el programa

                setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Paso 14: Ahora proseguimos creando el método letraBotones() que sera el encargado de cambiar el tipo, tamaño y estilo de la letra de todos lo botones.

public void letraBotones(String letra, int tipo, int tamanio) {
		letraBotones = new Font(letra, tipo, tamanio);
		btnUno.setFont(letraBotones);
		btnDos.setFont(letraBotones);
		btnTres.setFont(letraBotones);
		btnCuatro.setFont(letraBotones);
		btnCinco.setFont(letraBotones);
		btnSeis.setFont(letraBotones);
		btnSiete.setFont(letraBotones);
		btnOcho.setFont(letraBotones);
		btnNueve.setFont(letraBotones);
		btnCero.setFont(letraBotones);
		btnMas.setFont(letraBotones);
		btnMenos.setFont(letraBotones);
		btnPor.setFont(letraBotones);
		btnEntre.setFont(letraBotones);
		btnCe.setFont(letraBotones);
		btnAC.setFont(letraBotones);
		btnIgual.setFont(letraBotones);
		btnPunto.setFont(letraBotones);
	}

Paso 15: continuamos creando el método pintarBotones() que como su nombre dice pintara los botones dependiendo del código de color que reciba.

public void pintarBotones(int r, int g, int b) {
		Color color = new Color(r, g, b);
		btnUno.setBackground(color);
		btnDos.setBackground(color);
		btnTres.setBackground(color);
		btnCuatro.setBackground(color);
		btnCinco.setBackground(color);
		btnSeis.setBackground(color);
		btnSiete.setBackground(color);
		btnOcho.setBackground(color);
		btnNueve.setBackground(color);
		btnCero.setBackground(color);
		btnMas.setBackground(color);
		btnMenos.setBackground(color);
		btnPor.setBackground(color);
		btnEntre.setBackground(color);
		btnCe.setBackground(color);
		btnAC.setBackground(color);
		btnIgual.setBackground(color);
		btnPunto.setBackground(color);
	}

Paso 16: Creamos ahora el método pintarPantalla() que sera el encargado de poner el numero que corresponda en la pantalla.

public void pintarPantalla(String numero) {
		String strPantalla = pantalla.getText();
		if (strPantalla.equals("")) {
			pantalla.setText(numero);
		} else {
			strPantalla = strPantalla + numero;
			pantalla.setText(strPantalla);
		}
	}

Paso 17:  Creamos el método accionesBotones() que sera donde agregaremos todos los accionlistener de todos los botones:

public void accionesBotones() {
		chLetra1.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				letra = "Arial";
				letraBotones(letra, tipo, tamanio);
			}
		});
		chLetra2.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				letra = "Times New Roman";
				letraBotones(letra, tipo, tamanio);
			}
		});
		chLetra3.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				letra = "Comic Sans MS";
				letraBotones(letra, tipo, tamanio);
			}
		});
		chTamanio1.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				tamanio = 10;
				letraBotones(letra, tipo, tamanio);
			}
		});
		chTamanio2.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				tamanio = 15;
				letraBotones(letra, tipo, tamanio);
			}
		});
		chTamanio3.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				tamanio = 20;
				letraBotones(letra, tipo, tamanio);
			}
		});
		chColor1.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				pintarBotones(255, 0, 0);
			}
		});
		chColor2.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				pintarBotones(0, 255, 0);
			}
		});
		chColor3.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				pintarBotones(0, 0, 255);
			}
		});
		btnPrintarTxt.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				int r = Integer.parseInt(txtRojo.getText());
				int g = Integer.parseInt(txtVerde.getText());
				int b = Integer.parseInt(txtAzul.getText());
				pintarBotones(r, g, b);
			}
		});
		btnPrintarCmb.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				int r = cbAzul.getSelectedIndex();
				int g = cbVerde.getSelectedIndex();
				int b = cbAzul.getSelectedIndex();
				pintarBotones(r, g, b);
			}
		});
		btnUno.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				pintarPantalla("1");
			}
		});
		btnDos.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				pintarPantalla("2");
			}
		});
		btnTres.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				pintarPantalla("3");
			}
		});
		btnCuatro.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				pintarPantalla("4");
			}
		});
		btnCinco.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				pintarPantalla("5");
			}
		});
		btnSeis.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				pintarPantalla("6");
			}
		});
		btnSiete.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				pintarPantalla("7");
			}
		});
		btnOcho.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				pintarPantalla("8");
			}
		});
		btnNueve.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				pintarPantalla("9");
			}
		});
		btnCero.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				String strPantalla = pantalla.getText();
				if (!strPantalla.equals("")) {
					pintarPantalla("0");
				}
			}
		});
		btnPunto.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				String strPantalla = pantalla.getText();
				if (elPunto) {
					if (strPantalla.equals("")) {
						pintarPantalla("0.");
						elPunto = false;
					} else {
						pintarPantalla(".");
						elPunto = false;
					}
				}
			}
		});
		btnCe.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				pantalla.setText("");
				elPunto = true;

			}
		});
		btnAC.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				pantalla.setText("");
				total=0;
				elPunto=true;
				operacion="";
				inicio=true;
			}
		});
		btnMas.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				double numero = Double.parseDouble(pantalla.getText());
				total = total + numero;
				operacion = "suma";
				pantalla.setText("");

			}
		});
		btnMenos.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				double numero = Double.parseDouble(pantalla.getText());
				if (inicio) {
					total = numero;
					operacion = "resta";
					pantalla.setText("");
					inicio = false;
				} else {
					total = total - numero;
					operacion = "resta";
					pantalla.setText("");
				}

			}
		});
		btnPor.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				double numero = Double.parseDouble(pantalla.getText());
				if (inicio) {
					total = numero;
					operacion = "multi";
					pantalla.setText("");
					inicio = false;
				} else {
					total = total * numero;
					operacion = "multi";
					pantalla.setText("");
				}

			}
		});
		btnEntre.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				double numero = Double.parseDouble(pantalla.getText());
				if (inicio) {
					total = numero;
					operacion = "entre";
					pantalla.setText("");
					inicio = false;
				} else {
					total = total / numero;
					operacion = "entre";
					pantalla.setText("");
				}

			}
		});
		btnIgual.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				double numero = Double.parseDouble(pantalla.getText());
				if(operacion.equals("suma")){
					total=total+numero;
					pantalla.setText(String.valueOf(total));
					total=0;
					elPunto=true;
					operacion="";
					inicio=true;
				}else if(operacion.equals("resta")){
					total=total-numero;
					pantalla.setText(String.valueOf(total));
					total=0;
					elPunto=true;
					operacion="";
					inicio=true;
				}else if(operacion.equals("multi")){
					total=total*numero;
					pantalla.setText(String.valueOf(total));
					total=0;
					elPunto=true;
					operacion="";
					inicio=true;
				}else if(operacion.equals("entre")){
					total=total/numero;
					pantalla.setText(String.valueOf(total));
					total=0;
					elPunto=true;
					operacion="";
					inicio=true;
				}
			}
		});

	}

Paso Final: Por Ultimo Creamos nuestra clase Auxiliar para que nuestro programa pueda ser ejecutado..

public class Auxiliar {
	public static void main(String[] args) {
		Calculadora objeto=new Calculadora();
		objeto.accionesBotones();
	}
}

Quedaría de la Siguiente Manera:

calculadora