Ayuda Programa
Que tal!
Tu eres mi salvación pues en una anterior pregunta fuiste el unico que me dió la respuesta correcta y me sacó del apuro, espero me puedas ayudar tambien con lo siguiente:
Estoy un poco confundido con una calculadora sencilla que estoy haciendo, quisiera saber como puedo ir guardando en una variable los botones que se vayan oprimiendo, tanto los numeros como los operadores, 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 la cadena 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
Tu eres mi salvación pues en una anterior pregunta fuiste el unico que me dió la respuesta correcta y me sacó del apuro, espero me puedas ayudar tambien con lo siguiente:
Estoy un poco confundido con una calculadora sencilla que estoy haciendo, quisiera saber como puedo ir guardando en una variable los botones que se vayan oprimiendo, tanto los numeros como los operadores, 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 la cadena 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 lagarto
1