0 Usuarios y 1 Visitante están viendo este tema.

*
[Java] Error al pasar un int a String
« en: Enero 22, 2016, 03:37:01 pm »
Hola. He estado intentando crear una calculadora en Java y me funciona casi perfectamente lo que tengo actualmente. El único problema que tengo es a la hora de obtener el resultado. Las líneas de código que me muestran 'errores' son las siguientes:

Citar
primero=Integer.parseInt(txtpantalla.getText());
        if(signo == "+"){
            resultado=primero+segundo;
        }      
        txtpantalla.setText(testo.valueOf(resultado));
        txtpantalla.setText(testo);

He marcado con amarillo las zonas que me han subrayado con amarillo. Como podéis ver, tengo un int para realizar la operación de suma en caso de que la variable signo sea +. Una vez que hace la operación, para que pueda poner el resultado en la caja de texto lo trato de pasar al string testo, pero a la hora de ejecutar el programa e ir a realizar la operación me ocurre que tras poner los números y el signo, finalmente no sale nada y acaba dando errores que adjunto por aquí:
Spoiler para ocultar:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
   at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
   at java.lang.Integer.parseInt(Integer.java:592)
   at java.lang.Integer.parseInt(Integer.java:615)
   at calculadoraseria.index.jButton11ActionPerformed(index.java:247)
   at calculadoraseria.index.access$1000(index.java:12)
   at calculadoraseria.index$11.actionPerformed(index.java:129)
   at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
   at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
   at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
   at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
   at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
   at java.awt.Component.processMouseEvent(Component.java:6525)
   at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
   at java.awt.Component.processEvent(Component.java:6290)
   at java.awt.Container.processEvent(Container.java:2234)
   at java.awt.Component.dispatchEventImpl(Component.java:4881)
   at java.awt.Container.dispatchEventImpl(Container.java:2292)
   at java.awt.Component.dispatchEvent(Component.java:4703)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
   at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
   at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
   at java.awt.Container.dispatchEventImpl(Container.java:2278)
   at java.awt.Window.dispatchEventImpl(Window.java:2750)
   at java.awt.Component.dispatchEvent(Component.java:4703)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
   at java.awt.EventQueue.access$500(EventQueue.java:97)
   at java.awt.EventQueue$3.run(EventQueue.java:709)
   at java.awt.EventQueue$3.run(EventQueue.java:703)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
   at java.awt.EventQueue$4.run(EventQueue.java:731)
   at java.awt.EventQueue$4.run(EventQueue.java:729)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Lo peor de todo es que la primera vez que le doy al botón de = no pasa nada, ni hace la operación ni da error. Pero a la hora de darle por una segunda vez sale ese error y sigue sin hacer la operación.
Entonces mi duda es cómo hacer que realice la operación, o si es más fácil hacerlo de otra forma.

Gracias de antemano.

       



Linkback: http://minecraftmin.net/index.php?topic=12191.0




Mi mayor post: https://goo.gl/dQEx9M  ||  Skype: ljavaa  || Ex-Redactor y Ex-Colaborador Oficial  || Co-fundador de MysticMakers ||  Amante de la informática y los videojuegos  ||  ¡No dudes en mandarme MP si necesitas ayuda!

Spoiler para Cosas Random:

*

    Conectado Alfomega

  • *
  • 1685
  • Sexo: Masculino
  • Ingeniero informático
    • Castrum Scientiae
Re:[Java] Error al pasar un int a String
« Respuesta #1 en: Enero 22, 2016, 03:52:09 pm »
Para empezar, si pones string + string o incluso int + string lo que haces es concatenar, es decir, unes las cadenas de texto en una. Ambos números deben estar transformados con Integer.parseInt(string).
Segundo, el error pone que intenta parsear una cadna vacía a int, por lo que debe de haber algún fallo en donde coges los datos.
Por último, si quieres pasar un int a String, usa el método toString() del int. Por ejemplo, resultado.toString().
« Última modificación: Enero 22, 2016, 03:58:23 pm por Alfomega »
Alfomega

*
Re:[Java] Error al pasar un int a String
« Respuesta #2 en: Enero 23, 2016, 11:24:28 am »
Para empezar, si pones string + string o incluso int + string lo que haces es concatenar, es decir, unes las cadenas de texto en una. Ambos números deben estar transformados con Integer.parseInt(string).
Segundo, el error pone que intenta parsear una cadna vacía a int, por lo que debe de haber algún fallo en donde coges los datos.
Por último, si quieres pasar un int a String, usa el método toString() del int. Por ejemplo, resultado.toString().
Al utilizar ese método me dice que int cannot be dereferenced.

En cuanto a que ambos números estén transformados, sí. Ambos están transformados por lo que el error debe estar a la hora de pasar el int a string.
*

    Conectado Alfomega

  • *
  • 1685
  • Sexo: Masculino
  • Ingeniero informático
    • Castrum Scientiae
Re:[Java] Error al pasar un int a String
« Respuesta #3 en: Enero 23, 2016, 12:00:47 pm »
Para empezar, si pones string + string o incluso int + string lo que haces es concatenar, es decir, unes las cadenas de texto en una. Ambos números deben estar transformados con Integer.parseInt(string).
Segundo, el error pone que intenta parsear una cadna vacía a int, por lo que debe de haber algún fallo en donde coges los datos.
Por último, si quieres pasar un int a String, usa el método toString() del int. Por ejemplo, resultado.toString().
Al utilizar ese método me dice que int cannot be dereferenced.

En cuanto a que ambos números estén transformados, sí. Ambos están transformados por lo que el error debe estar a la hora de pasar el int a string.

Vale, fallo mio, es Integer.toString(resultado); Con tanto lenguaje ya mezclo cosas.

Share via delicious Share via digg Share via facebook Share via furl Share via linkedin Share via myspace Share via reddit Share via stumble Share via technorati Share via twitter

xx
[Como programar en Java desde 0] Bloque Java 1.1: Lo necesario

Iniciado por Diego_wwe

2 Respuestas
904 Vistas
Último mensaje Abril 05, 2015, 11:00:21 pm
por Diego_wwe
xx
Gamepads y Java?

Iniciado por roberto1ooo

2 Respuestas
731 Vistas
Último mensaje Enero 31, 2015, 10:49:52 am
por roberto1ooo
xx
Ayuda en java

Iniciado por Bluxter

4 Respuestas
1290 Vistas
Último mensaje Junio 17, 2014, 05:48:42 pm
por Bluxter
exclamation
problema java (tm) dejo de funcionar

Iniciado por creeper troller 13

8 Respuestas
2779 Vistas
Último mensaje Mayo 22, 2014, 10:17:06 pm
por creeper troller 13