Es medio complicado encontrar un NullPointerException solo mirando el código. Para encontrarlo te recomiendo que uses el debuger del IDE que estes usando (sea Netbeans, Eclipse, etc) y hagas un seguimiento instruccion por instruccion del método RecogerDatoColor() ya que seguramente se te estan yendo afuera los indices, pero verlo asi a simple vista es dificil...
Singleton es un patron de diseño, el mas simple... Te recomiendo que leas sobre los patrones de diseño mas usados en Java, como Factory, Singleton, Facade, etc... Te ayudan muchisimo a la hora de pensar la lógica de tu programa.
Por otro lado el patron Singleton es con el constructor privado, no publico, ya que la idea es que al iniciarse la aplicacion la clase PruebaSingleton se cree automaticamente y no permita que se cree otra instancia de la misma clase. O sea, una sola instancia en todo el programa. Asi tendria que ser la clase PruebaSingleton:
Código PHP:
public class PruebaSingleton {
private static final PruebaSingleton INSTANCE = new PruebaSingleton(); // Como veras aca se ejecuta por unica vez el constructor y al ser privado no tienes como volverlo a ejecutar para crear una nueva instancia de esta clase, por lo tanto en todo tu programa solo existirá una y solo una instancia de PruebaSingleton.
private PruebaSingleton() {
// Aca todo el codigo que necesites al iniciar la clase.
}
/** Aca todos los métodos públicos y privados de la clase.... */
/* Este es el método que te devuelve la única instancia que existe de PruebaSingleton, en cualquier parte del programa, y a través de la cual accederás a los demás métodos de tu clase. */
public static PruebaSingleton getInstance() {
return INSTANCE;
}
}
En cualquier otra parte de tu programa vas a hacer:
Código PHP:
PruebaSingleton.getInstance().RecogerDatoColor(1,10);
Sin tener que crear una nueva instancia de PruebaSingleton... simplemente llamando a la unica instancia existente...
Marcadores