[Java] Error con actionPerformed

Iniciado por Lain0x, 3 Diciembre 2010, 16:22 PM

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

Lain0x

Hola, estoy haciendo un programa en Java en que una clase gráfica llama a una clase operaciones por medio de un objeto. El problema es que no se ejecuta correctamente, la verdad no hace nada.

Clase gráfica (No está completa obviamente, sólo la parte en que se origina el error)
La idea en ésta parte es que al presionar un botón se ingrese una cierta cantidad predeterminada, ésta cantidad es un String. El objeto p está declarado antes correctamente.

private void b1ActionPerformed(java.awt.event.ActionEvent evt) {                                   
        if(evt.getSource()==b1)
            new Operacion();
        {   String n="";
            n = "10000";

            t.setText(p.diezmil(n)+"");
        }
    }   




Clase Operación
El método de ésta clase recibe al String, lo convierte a entero, aplica la fórmula y retorna un número.


public class Operacion {

    public int diezmil(String valor)
    {
        valor ="";
        int a = Integer.parseInt(valor);
        int bi10;
        bi10 = a/10000;
        a = a%10000;

        return(bi10);
    }
}


Espero puedan ayudarme, gracias.

Dnk!

Citarprivate void b1ActionPerformed(java.awt.event.ActionEvent evt) {   

Hay ya estas concretando en que el componete b1 ha entrado en el evento ActionPerformed(). Por lo que :
Citarif(evt.getSource()==b1)
es inecesario. Prueba con esto:

Código (java) [Seleccionar]

private void b1ActionPerformed(java.awt.event.ActionEvent evt) {                                   
            new Operacion();
            String n="";
            n = "10000";

            t.setText(p.diezmil(n)+"");
    }


Creo que hay esta el fallo, prueba y me dices.




Comentar es agradecer.
Visita Mi Blob

Lain0x

Me arroja esto:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at NuevoCajero.b1ActionPerformed(NuevoCajero.java:152)
        at NuevoCajero.access$000(NuevoCajero.java:16)
        at NuevoCajero$1.actionPerformed(NuevoCajero.java:53)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:5517)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
        at java.awt.Component.processEvent(Component.java:5282)
        at java.awt.Container.processEvent(Container.java:1966)
        at java.awt.Component.dispatchEventImpl(Component.java:3984)
        at java.awt.Container.dispatchEventImpl(Container.java:2024)
        at java.awt.Component.dispatchEvent(Component.java:3819)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
        at java.awt.Container.dispatchEventImpl(Container.java:2010)
        at java.awt.Window.dispatchEventImpl(Window.java:1791)
        at java.awt.Component.dispatchEvent(Component.java:3819)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

1mpuls0

#3
Hola que tal

Cita de: Lain0x en  3 Diciembre 2010, 16:22 PM
private void b1ActionPerformed(java.awt.event.ActionEvent evt) {                                   
        if(evt.getSource()==b1)
            new Operacion();
        {   String n="";
            n = "10000";

            t.setText(p.diezmil(n)+"");
        }
    }   


D:
No hace falta
Código (java) [Seleccionar]
if(evt.getSource()==b1)

Código (java) [Seleccionar]
new Operacion();
:huh:


Código (java) [Seleccionar]

String n="";
n = "10000";


Igual a:

Código (java) [Seleccionar]
String n="10000";


Código (java) [Seleccionar]
p.diezmil(n)+""
Por curiosidad como declaras tu objeto p??

Código (java) [Seleccionar]
+""
Lo mas correcto es usar el método String.valueOf();

Intenta con:

Código (java) [Seleccionar]

private void b1ActionPerformed(java.awt.event.ActionEvent evt) {                                   
            String n = "10000";
            t.setText(String.valueOf(new Operacion().diezmil(n)));
        }
}   


o con:

Código (java) [Seleccionar]

private void b1ActionPerformed(java.awt.event.ActionEvent evt) {                                   
            String n = "10000";
            Operacion p = new Operacion();
            t.setText(String.valueOf(p.diezmil(n)));
        }
}   



Ahora en esta parte:

Cita de: Lain0x en  3 Diciembre 2010, 16:22 PM

public class Operacion {

    public int diezmil(String valor)
    {
        valor ="";
        int a = Integer.parseInt(valor);
        int bi10;
        bi10 = a/10000;
        a = a%10000;

        return(bi10);
    }
}


Código (java) [Seleccionar]
valor ="";
WTH :huh:

Para que le cambias el valor si vas a hacer el parse a int?, es como si hicieras

Código (java) [Seleccionar]
int a = Integer.parseInt("");

Y al intentar hacerlo te causa una error.

Intenta con:

Código (java) [Seleccionar]
public int diezmil(String valor) {
        int a = Integer.parseInt(valor);
        int bi10 = a/10000;
        a = a%10000;
        return bi10;
    }


Saludos.
abc