• Jueves 14 de Noviembre de 2024, 13:07

Autor Tema:  Calculadora  (Leído 1046 veces)

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Calculadora
« en: Miércoles 4 de Octubre de 2006, 01:32 »
0
Hola, que tal

Necesito que mi codigo haga que cuando se presione  "+ , -, *, /" almacene o muestre el resultado hasta el momendo como lo hacen las calculadoras normales. por ejemplo

4+5 -2 *6

 espero haberme dado a entender :P


import java.awt.*;
import java.awt.event.*;
import java.applet.*;




public class prueba  extends Applet  
{
   
   
    Button bn[]=new Button[11];
    Button bn2[]=new Button[5];
    Button igual=new Button("=");
    Button pto=new Button(".");
    TextField txt1=new TextField(25);
    double num1=0;
    double num2;
    double res=0;
    Label dis = new Label("");
    boolean equals = false;
    String d;
    int word=1;
    char ope;
    public prueba()
    {
       setLayout(new FlowLayout());
        int i;
        for (i=0;i<bn.length;i++)
        {
            bn=new Button(String.valueOf(+i));
            bn.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    Numero(e);
                }
            });
            add(bn);
        }
        for (i=0;i<bn2.length;i++)
        {
            bn2=new Button();
            switch(i)
            {
                case 0:
                   
                    bn2.setLabel("+");
                    break;
                case 1:
                    bn2.setLabel("*");
                    break;
                case 2:
                    bn2.setLabel("-");
                    break;
                case 3:
                    bn2.setLabel("/");
                    break;
                case 4:
                   bn2.setLabel("C");
                   break;
                   
            }
            bn2.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    almacenar(e);
                   
                }
            });
            add(bn2);
           
        }
      igual.addActionListener(new ActionListener()
            {
           
            public void actionPerformed(ActionEvent e)
            {
                mostrar(e);
            }
        });
        add(igual);
       
        /*pto.addActionListener(new ActionListener()
        {
           public void actionPerformed(ActionEvent e)
           {
              punto(e);
           }
        });
       
        add("dis",pto);*/
       
       
       
        //txt1.setBounds(100,305,100,20);
        add("center",txt1);
    }
    public void punto (ActionEvent e){
    checkEquals ();

    if (d.indexOf ('.') != -1)
    return;

    if (d.length () < word)
    d = d + ".";
    dis.setText(d);
   
    }

    private void checkEquals () {
    if (equals == true) {
    equals = false;
    d = "0";
    }
    }

    public void mostrar(ActionEvent e)
    {
       num2=Double.parseDouble(txt1.getText());
       
        switch (ope)
        {
            case '+':
            res=num1+num2;
            break;
            case '-':
            res=num1-num2;
            break;
            case '*':
            res=num1*num2;
            break;
            case '/':
            res=num1/num2;
            break;
            case 'C':
              repaint();
              break;
            case '.':
               num2='.';
               
               
        }
        txt1.setText(String.valueOf(res));
    }
    public static void main (String args[])
    {
        prueba c=new prueba();
        c.setVisible(true);
    }
    public void Numero(ActionEvent e)
    {
        Button boton=(Button)(e.getSource());
        txt1.setText(txt1.getText()+boton.getLabel());
    }
    public void almacenar(ActionEvent e)
    {
        Button boton=(Button)(e.getSource());
        ope=boton.getLabel().charAt(0);
        num1=Double.parseDouble(txt1.getText());
        txt1.setText("");
    }
   
   
}