Octubre 17, 2017, 12:08:08 am
Visitante



Autor Tema:  [Java] Error al pasar un int a String  (Leído 952 veces)

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

Enero 22, 2016, 03:37:01 pm

Workod




  • Desconectado

  • *

    • *
    • *
    • *
  • Actividad

  • 0%
  • Logros

Más información

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:






Respuesta #1 Enero 22, 2016, 03:52:09 pm

Alfomega




  • Conectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    Ingeniero informático
  • Actividad

  • 25%
  • Logros

Más información

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



Respuesta #2 Enero 23, 2016, 11:24:28 am

Workod




  • Desconectado

  • *

    • *
    • *
    • *
  • Actividad

  • 0%
  • Logros

Más información

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.


Respuesta #3 Enero 23, 2016, 12:00:47 pm

Alfomega




  • Conectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    Ingeniero informático
  • Actividad

  • 25%
  • Logros

Más información

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
834 Vistas
Último mensaje Abril 05, 2015, 11:00:21 pm
por Diego_wwe
xx
Gamepads y Java?

Iniciado por roberto1ooo

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

Iniciado por Bluxter

4 Respuestas
1214 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
2629 Vistas
Último mensaje Mayo 22, 2014, 10:17:06 pm
por creeper troller 13