Ayuda applet
Que tal!
Estoy un poco confundido con una calculadora sencilla que estoy haciendo, quisiera saber como puedo y guardando en una variable los botones que se vayan oprimiendo, tanto los numeros como los aoperadores, es decir si yo he oprimido por ej : 12+5-8*2 y así sucesivamente, la verdad es que he intentado mucho, investigado pero no me da todo bien, no se si haya forma de guardarlo primero como cadena(este si se puede), pero convertirlo todo a un tipo doble, pues posee operadores tambien como se ve en el ejemplo anterior, lo intenté con Double.valueOf(String) y me da error.
Te agradezco de antemano si me puedes ayudar lo mas pronto posible.
Te adiciono el codigo de lo que yo he hecho (es un applet).
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.lang.*;
// <applet width="400" height="400" code="AppletCalculadora"></applet>
public class AppletCalculadora extends Applet implements ActionListener{
Button b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18;
TextField t1;
Panel pan2;
double valor = 0.0;
double res = 0.0;
String ultBoton = "";
String total = "";
public AppletCalculadora() {
setLayout(new BorderLayout());
Panel pan2 = new Panel();
t1 = new TextField();
add("North",t1);
add("Center",pan2);
pan2.setLayout(new GridLayout(6, 3, 10, 10));
b1 = new Button("1");
b2 = new Button("2");
b3 = new Button("3");
b4 = new Button("4");
b5 = new Button("5");
b6 = new Button("6");
b7 = new Button("7");
b8 = new Button("8");
b9 = new Button("9");
b10 = new Button(".");
b11 = new Button("0");
b12 = new Button("CE");
b13 = new Button("+");
b14 = new Button("-");
b15 = new Button("=");
b16 = new Button("*");
b17 = new Button("/");
b18 = new Button("C");
pan2.add(b1);
pan2.add(b2);
pan2.add(b3);
pan2.add(b4);
pan2.add(b5);
pan2.add(b6);
pan2.add(b7);
pan2.add(b8);
pan2.add(b9);
pan2.add(b10);
pan2.add(b11);
pan2.add(b12);
pan2.add(b13);
pan2.add(b14);
pan2.add(b15);
pan2.add(b16);
pan2.add(b17);
pan2.add(b18);
b1. AddActionListener(this);
b2. AddActionListener(this); // Se da la facultad a los botones de
b3. AddActionListener(this); // poder ser escuchados
b4. AddActionListener(this);
b5. AddActionListener(this);
b6. AddActionListener(this);
b7. AddActionListener(this);
b8. AddActionListener(this);
b9. AddActionListener(this);
b10. AddActionListener(this);
b11. AddActionListener(this);
b12. AddActionListener(this);
b13. AddActionListener(this);
b14. AddActionListener(this);
b15. AddActionListener(this);
b16. AddActionListener(this);
b17. AddActionListener(this);
b18. AddActionListener(this);
}
public void actionPerformed(ActionEvent ae) {
String cadena = "";
if ((ae.getActionCommand() == "1") || (ae.getActionCommand() == "0") ||
(ae.getActionCommand() == "2") || (ae.getActionCommand() == "3") ||
(ae.getActionCommand() == "4") || (ae.getActionCommand() == "5") ||
(ae.getActionCommand() == "6") || (ae.getActionCommand() == "7")||
(ae.getActionCommand() == "8") || (ae.getActionCommand() == "9"))
{
String boton = ae.getActionCommand();
if((ultBoton == "+")||(ultBoton == "-")||
(ultBoton == "/")||(ultBoton == "*"))
{
t1.setText("");
total = total + ultBoton;
//String total2 = total;
}
if (ae.getActionCommand() == "0")
{
if (valor == 0)
{
t1.setText("");
ultBoton = ae.getActionCommand();
total = total + ultBoton;
//String total2 = total;
}
else{
t1.setText("" + t1.getText() + boton);
cadena = t1.getText();
String cadena2 = cadena;
valor = Double.parseDouble(t1.getText());
ultBoton = ae.getActionCommand();
total = total + ultBoton;
//String total2 = total;
}
}
else {
t1.setText("" + t1.getText() + boton);
cadena = t1.getText();
String cadena2 = cadena;
valor = Double.parseDouble(t1.getText());
ultBoton = ae.getActionCommand();
total = total + ultBoton;
//String total2 = total;
}
}
// fin del mientras
if(ae.getActionCommand() == "+")
{
t1.setText(""+ total);
res = res + valor;
t1.setText("" + res);
valor = 0.0;
ultBoton = ae.getActionCommand();
//cadena = " ";
}
if(ae.getActionCommand() == "-")
{
res = res - valor;
t1.setText("" + res);
valor = 0;
//cadena = " ";
ultBoton = ae.getActionCommand();
}
if(ae.getActionCommand() == "*")
{
if (res != 0)
{
res = res * valor;
t1.setText("" + res);
valor = 0;
}
else
{
res = valor;
t1.setText("" + res);
valor = 0;
}
//cadena = " ";
ultBoton = ae.getActionCommand();
}
if(ae.getActionCommand() == "/")
{
res = res / valor;
t1.setText("" + res);
valor = 0;
//cadena = " ";
ultBoton = ae.getActionCommand();
}
if(ae.getActionCommand() == "CE")
{
t1.setText(""+res);
//res = res + valor;
valor = 0;
//cadena = " ";
}
if(ae.getActionCommand() == "C")
{
//res = res + valor;
t1.setText("");
valor = 0;
//boton = "";
total ="";
//cadena = " ";
res = 0;
}
if(ae.getActionCommand() == ".")
{
//res = res + valor;
//t1.setText("0");
t1.setText(""+ t1.getText()+".");
res = 0;
valor = 0;
}
} // fin del metodo actionPerformed
} // fin de la clase
Estoy un poco confundido con una calculadora sencilla que estoy haciendo, quisiera saber como puedo y guardando en una variable los botones que se vayan oprimiendo, tanto los numeros como los aoperadores, es decir si yo he oprimido por ej : 12+5-8*2 y así sucesivamente, la verdad es que he intentado mucho, investigado pero no me da todo bien, no se si haya forma de guardarlo primero como cadena(este si se puede), pero convertirlo todo a un tipo doble, pues posee operadores tambien como se ve en el ejemplo anterior, lo intenté con Double.valueOf(String) y me da error.
Te agradezco de antemano si me puedes ayudar lo mas pronto posible.
Te adiciono el codigo de lo que yo he hecho (es un applet).
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.lang.*;
// <applet width="400" height="400" code="AppletCalculadora"></applet>
public class AppletCalculadora extends Applet implements ActionListener{
Button b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18;
TextField t1;
Panel pan2;
double valor = 0.0;
double res = 0.0;
String ultBoton = "";
String total = "";
public AppletCalculadora() {
setLayout(new BorderLayout());
Panel pan2 = new Panel();
t1 = new TextField();
add("North",t1);
add("Center",pan2);
pan2.setLayout(new GridLayout(6, 3, 10, 10));
b1 = new Button("1");
b2 = new Button("2");
b3 = new Button("3");
b4 = new Button("4");
b5 = new Button("5");
b6 = new Button("6");
b7 = new Button("7");
b8 = new Button("8");
b9 = new Button("9");
b10 = new Button(".");
b11 = new Button("0");
b12 = new Button("CE");
b13 = new Button("+");
b14 = new Button("-");
b15 = new Button("=");
b16 = new Button("*");
b17 = new Button("/");
b18 = new Button("C");
pan2.add(b1);
pan2.add(b2);
pan2.add(b3);
pan2.add(b4);
pan2.add(b5);
pan2.add(b6);
pan2.add(b7);
pan2.add(b8);
pan2.add(b9);
pan2.add(b10);
pan2.add(b11);
pan2.add(b12);
pan2.add(b13);
pan2.add(b14);
pan2.add(b15);
pan2.add(b16);
pan2.add(b17);
pan2.add(b18);
b1. AddActionListener(this);
b2. AddActionListener(this); // Se da la facultad a los botones de
b3. AddActionListener(this); // poder ser escuchados
b4. AddActionListener(this);
b5. AddActionListener(this);
b6. AddActionListener(this);
b7. AddActionListener(this);
b8. AddActionListener(this);
b9. AddActionListener(this);
b10. AddActionListener(this);
b11. AddActionListener(this);
b12. AddActionListener(this);
b13. AddActionListener(this);
b14. AddActionListener(this);
b15. AddActionListener(this);
b16. AddActionListener(this);
b17. AddActionListener(this);
b18. AddActionListener(this);
}
public void actionPerformed(ActionEvent ae) {
String cadena = "";
if ((ae.getActionCommand() == "1") || (ae.getActionCommand() == "0") ||
(ae.getActionCommand() == "2") || (ae.getActionCommand() == "3") ||
(ae.getActionCommand() == "4") || (ae.getActionCommand() == "5") ||
(ae.getActionCommand() == "6") || (ae.getActionCommand() == "7")||
(ae.getActionCommand() == "8") || (ae.getActionCommand() == "9"))
{
String boton = ae.getActionCommand();
if((ultBoton == "+")||(ultBoton == "-")||
(ultBoton == "/")||(ultBoton == "*"))
{
t1.setText("");
total = total + ultBoton;
//String total2 = total;
}
if (ae.getActionCommand() == "0")
{
if (valor == 0)
{
t1.setText("");
ultBoton = ae.getActionCommand();
total = total + ultBoton;
//String total2 = total;
}
else{
t1.setText("" + t1.getText() + boton);
cadena = t1.getText();
String cadena2 = cadena;
valor = Double.parseDouble(t1.getText());
ultBoton = ae.getActionCommand();
total = total + ultBoton;
//String total2 = total;
}
}
else {
t1.setText("" + t1.getText() + boton);
cadena = t1.getText();
String cadena2 = cadena;
valor = Double.parseDouble(t1.getText());
ultBoton = ae.getActionCommand();
total = total + ultBoton;
//String total2 = total;
}
}
// fin del mientras
if(ae.getActionCommand() == "+")
{
t1.setText(""+ total);
res = res + valor;
t1.setText("" + res);
valor = 0.0;
ultBoton = ae.getActionCommand();
//cadena = " ";
}
if(ae.getActionCommand() == "-")
{
res = res - valor;
t1.setText("" + res);
valor = 0;
//cadena = " ";
ultBoton = ae.getActionCommand();
}
if(ae.getActionCommand() == "*")
{
if (res != 0)
{
res = res * valor;
t1.setText("" + res);
valor = 0;
}
else
{
res = valor;
t1.setText("" + res);
valor = 0;
}
//cadena = " ";
ultBoton = ae.getActionCommand();
}
if(ae.getActionCommand() == "/")
{
res = res / valor;
t1.setText("" + res);
valor = 0;
//cadena = " ";
ultBoton = ae.getActionCommand();
}
if(ae.getActionCommand() == "CE")
{
t1.setText(""+res);
//res = res + valor;
valor = 0;
//cadena = " ";
}
if(ae.getActionCommand() == "C")
{
//res = res + valor;
t1.setText("");
valor = 0;
//boton = "";
total ="";
//cadena = " ";
res = 0;
}
if(ae.getActionCommand() == ".")
{
//res = res + valor;
//t1.setText("0");
t1.setText(""+ t1.getText()+".");
res = 0;
valor = 0;
}
} // fin del metodo actionPerformed
} // fin de la clase
1 Respuesta
Respuesta de jruben
1