0

Al llamar al método cuentaPixeles el resultado es java.lang.NullPointerException, ¿que estoy haciendo mal?. Mi imagen tiene 400 de alto y 300 de ancho, uso la clase Color de java. Este es mi código:

class Imagen { 
private Color mapabits[][];
public Imagen(  ) 
    {
        mapabits = new Color[300][400];
        
    }

public Color colorDelPixel( int x, int y )
    {
        return mapabits[ y ][ x ];
    }

public int cuentaPixeles(Color color)
    {
        int contador = 0;
        for( int i = 0; i < 400; i++ )
            for( int j = 0; j < 300; j++ )
            {
               if (colorDelPixel(i, j).equals(color))
                    contador = contador++;
            }
     return contador;   
    }
 }
  • No veo que inicialices mapabits en ningún momento. Ese es todo el código que tienes?? Si quieres pedir ayuda con un error concreto, necesitamos ver el código entero, procura proporcionarnos un [mre]... y si ese es tu código completo, entonces vas a tener que inicializar `mapabits`. Por cierto, absolutamente TODOS, **TODOS** los NullPointerException tienen la misma causa... estás usando un `null` donde piensas que no hay null. – Benito-B Nov 11 '21 at 18:31
  • 1
    ¿Responde esto a tu pregunta? [¿Cuál es la solución a todos los errores NullPointerException presentes, pasados y futuros?](https://es.stackoverflow.com/questions/42977/cu%c3%a1l-es-la-soluci%c3%b3n-a-todos-los-errores-nullpointerexception-presentes-pasados) – Benito-B Nov 11 '21 at 18:32
  • he agregado el código de iniciar mapabits, y creo entender el concepto de puntero nulo, pero no entiendo por que acá aparece, gracias – hectorpyco Nov 12 '21 at 10:43
  • Porque has inicializado un array de objetos de tipo Color, con 300 y 400... pero como es un array de objetos, y en ningún momento creas los objetos, lo que tienes es un array así: `mapabits = {{null, null, null x 300 veces}, {null, null, null x 300 veces}, etc 400 veces}`. Y estás intentando hacer `null.equals(color)`, y null no tiene método alguno. Eso es lo que significa null, que no hay nada. Y eso es exactamente lo que te dice el mensaje de error... y es exactamente lo que explican en la pregunta que te enlacé en el anterior comentario. – Benito-B Nov 12 '21 at 13:14
  • la verdad no puse todo el código pero en el constructor se usa la clase BufferedImage para cargar una imagen de tipo jpg. – hectorpyco Nov 15 '21 at 17:59

0 Answers0