Translate

domingo, 6 de octubre de 2013

Calculadora GUI en java

El siguiente ejercicio lo encontré en uno de los blogs que frecuento, me parece una aplicación muy interesante para entender la interacción de los usuarios con la interfaz.


Aquí les dejo el blog donde pueden encontrar mas ejemplos: clic aqui


import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
  
public class Calculadora extends JFrame implements ActionListener{
 private JButton btn1,btn2,btn3,btn4,btn5;
 private JTextField val1,val2,resul;
  
 //metodo donde creo y añado los controles
 public void Controles(){
   //obtener panel de contenido y establecer su esquema
      Container contenedor = getContentPane();
      contenedor.setLayout( new FlowLayout(FlowLayout.CENTER) );
   //crear controles y añadir
      Label lbl1 = new Label("Numero");
      contenedor.add(lbl1);
      val1 = new JTextField(10);
      contenedor.add(val1);
      Label lbl2 = new Label("Numero");
      contenedor.add(lbl2);
      val2 = new JTextField(10);
      contenedor.add(val2);
      btn1 = new JButton("+");
      contenedor.add(btn1);
      btn1.addActionListener(this);
      btn2 = new JButton("-");
      contenedor.add(btn2);
      btn2.addActionListener(this);
      btn3 = new JButton("x");
      contenedor.add(btn3);
      btn3.addActionListener(this);
      btn4 = new JButton("/");
      contenedor.add(btn4);
      btn4.addActionListener(this);
      btn5 = new JButton("Limpiar");
      contenedor.add(btn5);
      btn5.addActionListener(this);
      resul = new JTextField(10);
      contenedor.add(resul);
 }
  
 public Calculadora(){
   //titulo ventana
      super("Calculadora");
      //cargo controles
      Controles();
      //tamaño ventana y mostrar y centrar
      setSize(380,150);
      setLocationRelativeTo(null);//centrar
      setVisible(true);
 }
  
 //eventos botones
   public void actionPerformed(ActionEvent e) {
     double  num1,num2,resu;
     String resultado;
        if (e.getSource()==btn1) {
         if(val1.getText().equals("") || val2.getText().equals("")){
          JOptionPane.showMessageDialog(null, "Los datos Están Incompletos",
          "Error",JOptionPane.ERROR_MESSAGE);
         }
         else{
          num1=Double.parseDouble(val1.getText());
          num2=Double.parseDouble(val2.getText());
          resu=num1+num2;
          resultado=String.valueOf(resu);
          resul.setText(resultado);
         }         
        }
        if (e.getSource()==btn2) {
         if(val1.getText().equals("") || val2.getText().equals("")){
          JOptionPane.showMessageDialog(null, "Los datos Están Incompletos",
          "Error",JOptionPane.ERROR_MESSAGE);
         }
         else{
          num1=Double.parseDouble(val1.getText());
          num2=Double.parseDouble(val2.getText());
          resu=num1-num2;
          resultado=String.valueOf(resu);
          resul.setText(resultado);
         }         
        }
        if (e.getSource()==btn3) {
         if(val1.getText().equals("") || val2.getText().equals("")){
          JOptionPane.showMessageDialog(null, "Los datos Están Incompletos",
          "Error",JOptionPane.ERROR_MESSAGE);
         }
         else{
          num1=Double.parseDouble(val1.getText());
          num2=Double.parseDouble(val2.getText());
          resu=num1*num2;
          resultado=String.valueOf(resu);
          resul.setText(resultado);
         }         
        }
        if (e.getSource()==btn4) {
         if(val1.getText().equals("") || val2.getText().equals("")){
          JOptionPane.showMessageDialog(null, "Los datos Están Incompletos",
          "Error",JOptionPane.ERROR_MESSAGE);
         }
         else{
          num1=Double.parseDouble(val1.getText());
          num2=Double.parseDouble(val2.getText());
          try{
           resu=num1/num2;
           resultado=String.valueOf(resu);
           resul.setText(resultado);
          }
          catch(ArithmeticException ex){
            JOptionPane.showMessageDialog(null, "No se Puede Dividir Entre 0",
            "Error",JOptionPane.ERROR_MESSAGE);
          }
           
         }         
        }
        if (e.getSource()==btn5){
         val1.setText("");
            val2.setText("");
            resul.setText("");
       }            
    }
     
    public static void main(String[] args) {
      JFrame.setDefaultLookAndFeelDecorated(true);
      Calculadora calc = new Calculadora();//Instanciamos la clase que creamos
      calc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//cerrar ventana
    }
}

No hay comentarios:

Publicar un comentario