Calculadora Realizada con Java
Paso 1. Creamos nuestro Proyecto en java, en este caso lo llamaremos Calculadora..

Paso 2. Creamos El Paquete Calculadora:
Paso 3. Creamos La Clase Calculadora en el paquete Calculadora..
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:



