calculadora java eclipse
Este es un ejemplo de una calculadora hecha en java con el IDE eclipse y con el plugin de diseño WindowBuilder.
Este plugin nos ayuda a generar código de diseño de interfaces como Jframe y JApplet para Webs
ya que de hacerlo manualmente tardaríamos mas.
Aquí dejo el código comentado.
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import
java.awt.event.ActionListener;
//import java.text.DecimalFormat;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class calculadoraTutorial extends JFrame implements ActionListener{
/**Script hecho por
David Ariel Mendez para
www.amigos-de-la-informatica.blogspot.com.es
* puedes modificar
o mejorar el Script siempre que menciones la pagina
*/
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JButton button1;
private JButton button2;
private JButton button3;
private JButton button4;
private JButton button5;
private JButton button6;
private JButton button7;
private JButton button8;
private JButton button9;
private JButton button10;
private JButton button11;
private JButton buttonIgual;
private JButton buttonSuma;
private JButton buttonResta;
private JButton buttonMultipli;
private JButton buttonDivision;
private JButton buttonRaiz;
private JTextField texField_insertadodeDatos;
private JButton buttonlimpiar;
private JLabel label_muestraValores_Arriba;
/////////////////////////////////////
A QUI ME DEFINO MIS VARIABLES QUE USARE
PARA REALIZAR LAS //OPERACIONES//////////////////
String memoria1="";
String memoria2="";
String signo="";
String muestra_resultado_en_Text;
float resultadoSuma=0;
float resultadoResta=0;
float resultadoMultiplicacion=0;
float resultadoDivision=0;
float resultadoRaiz=0;
float numero1=0;
float numero2=0;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
calculadoraTutorial frame = new
calculadoraTutorial();
frame.setVisible(true);
frame.setEnabled(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public calculadoraTutorial() {
setResizable(false);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 401, 318);
contentPane = new JPanel();
setContentPane(contentPane);
contentPane.setLayout(null);
setTitle("amigos-de-la-informatica.blogspot.com.es");
setLocationRelativeTo(null);///////////////////////////////ESTO
ES PARA MOSTRAR LA CALCULADORA EN EL MEDIO DEL //ORDENADOR//////////////////////
texField_insertadodeDatos = new JTextField();
texField_insertadodeDatos.setFont(new Font("Tahoma", Font.BOLD, 14));
texField_insertadodeDatos.setForeground(Color.BLACK);
texField_insertadodeDatos.setBackground(Color.WHITE);
texField_insertadodeDatos.setHorizontalAlignment(SwingConstants.CENTER);
texField_insertadodeDatos.setColumns(10);
texField_insertadodeDatos.setBounds(58,
43, 280, 34);
contentPane.add(texField_insertadodeDatos);
button1 = new JButton("1");
button1.setFont(new Font("Tahoma", Font.BOLD, 13));
button1.addActionListener(this);
button1.setBounds(58, 99, 62, 23);
contentPane.add(button1);
button2 = new JButton("2");
button2.setFont(new Font("Tahoma", Font.BOLD, 13));
button2.addActionListener(this);
button2.setBounds(132, 99, 62, 23);
contentPane.add(button2);
button3 = new JButton("3");
button3.setFont(new Font("Tahoma", Font.BOLD, 13));
button3.addActionListener(this);
button3.setBounds(204, 99, 62, 23);
contentPane.add(button3);
button4 = new JButton("4");
button4.setFont(new Font("Tahoma", Font.BOLD, 13));
button4.addActionListener(this);
button4.setBounds(58, 133, 62, 23);
contentPane.add(button4);
button5 = new JButton("5");
button5.setFont(new Font("Tahoma", Font.BOLD, 13));
button5.addActionListener(this);
button5.setBounds(132, 133, 62, 23);
contentPane.add(button5);
button6 = new JButton("6");
button6.setFont(new Font("Tahoma", Font.BOLD, 13));
button6.addActionListener(this);
button6.setBounds(204, 133, 62, 23);
contentPane.add(button6);
button7 = new JButton("7");
button7.setFont(new Font("Tahoma", Font.BOLD, 13));
button7.addActionListener(this);
button7.setBounds(58, 167, 62, 23);
contentPane.add(button7);
button8 = new JButton("8");
button8.setFont(new Font("Tahoma", Font.BOLD, 13));
button8.addActionListener(this);
button8.setBounds(132, 167, 62, 23);
contentPane.add(button8);
button9 = new JButton("9");
button9.setFont(new Font("Tahoma", Font.BOLD, 13));
button9.addActionListener(this);
button9.setBounds(204, 167, 62, 23);
contentPane.add(button9);
button10 = new JButton("0");
button10.setFont(new Font("Tahoma", Font.BOLD, 13));
button10.addActionListener(this);
button10.setBounds(58, 201, 62, 23);
contentPane.add(button10);
button11 = new JButton(".");
button11.setFont(new Font("Tahoma", Font.BOLD, 14));
button11.setBounds(132, 201, 62, 23);
button11.addActionListener(this);
contentPane.add(button11);
buttonlimpiar = new JButton("C");
buttonlimpiar.setFont(new Font("Tahoma", Font.BOLD, 13));
buttonlimpiar.addActionListener(this);
buttonlimpiar.setBounds(204, 201, 62,
23);
contentPane.add(buttonlimpiar);
buttonIgual = new JButton("=");
buttonIgual.setFont(new Font("Tahoma", Font.BOLD, 17));
buttonIgual.addActionListener(this);
buttonIgual.setBounds(58, 235, 208,
23);
contentPane.add(buttonIgual);
buttonSuma = new JButton("+");
buttonSuma.setFont(new Font("Tahoma", Font.BOLD, 13));
buttonSuma.addActionListener(this);
buttonSuma.setBounds(276, 99, 62, 23);
contentPane.add(buttonSuma);
buttonResta = new JButton("-");
buttonResta.setFont(new Font("Tahoma", Font.BOLD, 18));
buttonResta.addActionListener(this);
buttonResta.setBounds(276, 133, 62,
23);
contentPane.add(buttonResta);
buttonMultipli = new JButton("x");
buttonMultipli.setFont(new Font("Tahoma", Font.BOLD, 13));
buttonMultipli.addActionListener(this);
buttonMultipli.setBounds(276, 167, 62,
23);
contentPane.add(buttonMultipli);
buttonDivision = new JButton("\u00F7");
buttonDivision.setFont(new Font("Tahoma", Font.BOLD, 13));
buttonDivision.addActionListener(this);
buttonDivision.setBounds(276, 201, 62,
23);
contentPane.add(buttonDivision);
buttonRaiz = new JButton("\u221A");
buttonRaiz.setFont(new Font("Tahoma", Font.BOLD, 13));
buttonRaiz.addActionListener(this);
buttonRaiz.setBounds(276, 235, 62,
23);
contentPane.add(buttonRaiz);
label_muestraValores_Arriba = new JLabel("");
label_muestraValores_Arriba.setFont(new Font("Tahoma", Font.BOLD, 9));
label_muestraValores_Arriba.setHorizontalAlignment(SwingConstants.RIGHT);
label_muestraValores_Arriba.setBounds(48,
18, 259, 14);
contentPane.add(label_muestraValores_Arriba);
}
public void actionPerformed(ActionEvent e) {
//DecimalFormat df = new
DecimalFormat("0.00");//esto es para que se
muestre solo 2 decimales los instancio //tambien
arriba
if(((JButton)e.getSource()).equals(button1)){
texField_insertadodeDatos.setText(""+texField_insertadodeDatos.getText()+"1"); //Aqui le
digo que ponga el //texto( y a la vez que
me consiga lo que hay dentro y le añada
la cadena +1)
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText());
}
if(((JButton)e.getSource()).equals(button2)){
texField_insertadodeDatos.setText(""+texField_insertadodeDatos.getText()+"2");
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText());
}
if(((JButton)e.getSource()).equals(button3)){
texField_insertadodeDatos.setText(""+texField_insertadodeDatos.getText()+"3");
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText());
}
if(((JButton)e.getSource()).equals(button4)){
texField_insertadodeDatos.setText(""+texField_insertadodeDatos.getText()+"4");
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText());
}
if(((JButton)e.getSource()).equals(button5)){
texField_insertadodeDatos.setText(""+texField_insertadodeDatos.getText()+"5");
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText());
}
if(((JButton)e.getSource()).equals(button6)){
texField_insertadodeDatos.setText(""+texField_insertadodeDatos.getText()+"6");
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText());
}
if(((JButton)e.getSource()).equals(button7)){
texField_insertadodeDatos.setText(""+texField_insertadodeDatos.getText()+"7");
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText());
}
if(((JButton)e.getSource()).equals(button8)){
texField_insertadodeDatos.setText(""+texField_insertadodeDatos.getText()+"8");
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText());
}
if(((JButton)e.getSource()).equals(button9)){
texField_insertadodeDatos.setText(""+texField_insertadodeDatos.getText()+"9");
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText());
}
if(((JButton)e.getSource()).equals(button10)){
texField_insertadodeDatos.setText(""+texField_insertadodeDatos.getText()+"0");
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText());
}
if(((JButton)e.getSource()).equals(button11)){
texField_insertadodeDatos.setText(""+texField_insertadodeDatos.getText()+".");
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText());
}
//////////////// OJO AQUI
OPERADORES///////////////////////////////////////////////
if(((JButton)e.getSource()).equals(buttonSuma)){
if(texField_insertadodeDatos.getText().equals("")){////////Aqui
hago un control si texField_insertadodeDatos //esta
vacio osea ,no se ha pulsado ningun boton
System.runFinalization();////////////////////////////////////
la operacion no hace nada
texField_insertadodeDatos.setText("");//Y establesco
el campo vacio para poder meter cadenas(memoria1)
}else{
signo = "Suma";///Aqui
me he declarado signo como un String y que si
apreto el boton de suma operacion //contendra
la cadena "Suma" y asi lo mismo para los demás operadores.
memoria1 = texField_insertadodeDatos.getText(); ///Aqui agarro
el string que contienne la cadena //texField_insertadodeDatos
y se lo meto a memoria1
numero1 = Float.parseFloat(memoria1);//Aqui convierto
de String de memoria1 a float y se lo meto
numero1 //(Aqui he declarado
numero1 como float arriba para poder sumar mas adelante)
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText()+" +"); ////Aqui he puesto una //label para
ver como se esta haciendo la operacion es una copia de
texField_insertadodeDatos
texField_insertadodeDatos.setText("");//////establesco
el campo vacio para poder meter cadenas (memoria2)
}
}
////////////////////////////////////////////////////////
if(((JButton)e.getSource()).equals(buttonResta)){
if(texField_insertadodeDatos.getText().equals("")){///Aqui hago un
control si textfiledmostrar esta vacio //hacer lo siguiente
System.runFinalization(); ///Aqui si no
hay numero1 la operacion no hace nada
texField_insertadodeDatos.setText("");
}else{
signo = "Resta";
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText()+" -");
memoria1 = texField_insertadodeDatos.getText();
numero1 = Float.parseFloat(memoria1);
texField_insertadodeDatos.setText(""); ///establesco
el campo vacio para poder meter cadenas (memoria2)
}
}
//////////////////////////////////////////////////////////////////
if(((JButton)e.getSource()).equals(buttonMultipli)){
if(texField_insertadodeDatos.getText().equals("")){
System.runFinalization();
texField_insertadodeDatos.setText("");
}else{
signo = "Multiplicacion";
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText()+" x");
memoria1 = texField_insertadodeDatos.getText();
numero1 = Float.parseFloat(memoria1);
texField_insertadodeDatos.setText("");
}
}
///////////////////////////////////////////////////////////////////////////
if(((JButton)e.getSource()).equals(buttonDivision)){
if(texField_insertadodeDatos.getText().equals("")){
System.runFinalization();
texField_insertadodeDatos.setText("");
}else{
signo = "Division";
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText()+" /");
memoria1 = texField_insertadodeDatos.getText();
numero1 = Float.parseFloat(memoria1);
texField_insertadodeDatos.setText("");
}
}
//////////////////////////////////////////////////////////////////////////
if(((JButton)e.getSource()).equals(buttonRaiz)){
if(texField_insertadodeDatos.getText().equals("")){
System.runFinalization();
texField_insertadodeDatos.setText("");
}else{
signo = "Raiz";
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText()+" \u221A");
memoria1 = texField_insertadodeDatos.getText();
numero1 = Float.parseFloat(memoria1);
texField_insertadodeDatos.setText("");
}
}
///////////////////////////Ojo
el Boton igual ////////////////////////////////////////
if(((JButton)e.getSource()).equals(buttonIgual)){ //cuando aprete el boton igual
operacion();
//llamo al metodo operacion
texField_insertadodeDatos.setText(muestra_resultado_en_Text); //muestro el
resultado por pantalla
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText());
signo="Suma";// Aqui pongo
que signo es suma este es un truco por si quiero seguir usando el //resultado //obtenido
de las operaciones anteriores (de division resta multi y suma)
numero1=0;// Y limpio mi
numero1 y numero2 dejandolos a 0 para
poder seguir haciendooperaciones
numero2=0;
}
if(((JButton)e.getSource()).equals(buttonlimpiar)){///Aqui limpio
todo para seguir metiendo cadenas
texField_insertadodeDatos.setText("");
label_muestraValores_Arriba.setText(""+texField_insertadodeDatos.getText());
}
}
/////////////AQUI CONSTRUYO UN
METODO QUE SE LLAMA OPERACION/////////////////////////////////////
public void operacion(){
if (signo == "Suma"){ // Aqui hago la comparacion y si la
cadena contiene "Suma" hacer lo siguiente
memoria2 = texField_insertadodeDatos.getText();///Aqui agarro
el string que continene la cadena //texField_insertadodeDatos y se lo meto a
memoria2 (nota aqui ya se apreto el boton + la pantalla se quedo //limpia y se
volvio a meter cadena)
numero2=Float.parseFloat(memoria2); //Aqui
convierto de String de memoria2 a float y se lo meto numero2
resultadoSuma = numero1+numero2;// Aqui le digo
que el resultadosSuma= es la suma del numero1 de arriba + //numero2 de abajo
muestra_resultado_en_Text = Float.toString(resultadoSuma);/// Aqui me
hago una variable String //muestraresultadoentext esto para poder mostrar en
pantalla y convierto el resultadosuma de
float a String
texField_insertadodeDatos.setText(muestra_resultado_en_Text);
}else if(signo == "Resta"){
memoria2 = texField_insertadodeDatos.getText();
numero2=Float.parseFloat(memoria2);
resultadoResta = numero1-numero2;
muestra_resultado_en_Text = Float.toString(resultadoResta);
texField_insertadodeDatos.setText(muestra_resultado_en_Text);
}else if(signo == "Multiplicacion"){
memoria2 = texField_insertadodeDatos.getText();
numero2=Float.parseFloat(memoria2);
resultadoMultiplicacion = numero1*numero2;
muestra_resultado_en_Text = Float.toString(resultadoMultiplicacion);
texField_insertadodeDatos.setText(muestra_resultado_en_Text);
}else if(signo == "Division"){
memoria2 = texField_insertadodeDatos.getText();
numero2=Float.parseFloat(memoria2);
resultadoDivision = numero1/numero2;
muestra_resultado_en_Text = Float.toString(resultadoDivision);
texField_insertadodeDatos.setText(muestra_resultado_en_Text);
}else if (signo == "Raiz"){
// memoria2 = texFieldmostrar.getText(); /////en este caso no
necesito memoria2 por eso la elimino
// numero2=Float.parseFloat(memoria2);//////// tampoco uso el
numero2
resultadoRaiz=(float) (Math.sqrt(numero1)) ;
muestra_resultado_en_Text = Float.toString(resultadoRaiz);
texField_insertadodeDatos.setText(muestra_resultado_en_Text);
}
}
}
Espero que se entienda no olviden compartir abajo les dejo unos link relacionados.
Poema costumbrista de mi pueblo Es ley del cruceño la hospitalidad