Pues en java hay una clase que se llama ArrayList de la libreria java.util
Podés utilizarla en lugar de un arreglo tipico, por que es mas facil de manipular
a la hora de obtener y agregar nuevos items (en tu caso imagenes) entonces la idea mas o menos es esta:
Cuando creas un ArrayList lo que definis es un array de objectos (la clase base de java)
Entonces por ejemplo:
ArrayList listaPersonas=new ArrayList() // se crea un nuevo arraylist
Ahora hacé de caso que tenes una clase que se llama persona y queres
almacenar en el arraylist un conjunto de personas entonces por ejemplo creas una nueva instancia d una
persona y la agregas al arraylist
Persona p1=new Persona("Otto");//digamos que le pasas como parametro el nombre
Persona p2=new Persona("Lui");
Entonces las agregas al ArrayList
si te das cuenta la ventaja es que no tenes que estar definiendo un array de
personas de un tamaño determinado sino que el arraylist crece dinamicamente.
Bueno si te das cuenta las operaciones principales sobre un arreglo son agregar un item y obtener uno o mas items almacenados. En cuanto a agregar eso se arregla con el add() ahora el problema seria obtener los objetos almacenados.
Esto seria comunmente por medio de un ciclo (se se quieren todos) o accediendo por medio del indice de algun objeto especifico(en el arraylist empieza tambien en 0).
Lo que hay que tomar en cuenta es que cuando se guardan los objetos en el arraylist ya no son propiamente de su clase (las personas ya no son personas),
sino que se transforman a objetos de tipo Object (la clase raiz de java), por lo que para obtener otra vez los objetos almacenados tenes que utilizar un casting y regresarlos a lo que eran antes (en este caso personas).
Como se logra esto?
Por ejemplo si queremos la persona en la posicion 0 del array list
lo obtendriamos de esta forma:
ahora aux contiene todos los datos que tenia la persona en la posicion 0 del arreglo. El metodo get( int indice) te regresa un Objeto en una poscion (indice)
del ArrayList.
Lo que se llama casting se implementa por medio de los parentesis
"(NombreDeLaClase)objetoAserCasteado;"esa es la sintaxis
Pues eso del casting y todo lo demas la verdad es por cultura general jajaja
y para saber que se esta haciendo pero lo bueno es que para hacer mas transparente la implementacion del arrayList sin necesidad de utilizar casting, se puede declarar desde el principio el tipo de dato que se quiere almacenar en tu caso Imagenes.
la clase que te recomiendo es ImageIcon
se declara de esta forma. El parametro es la direccion en la que se encuentra la imagen.
ahora hace de caso que la queres almacenar en un arraylist las imagenes, lo bueno es que ahora vamos a implementar un arraylist que solo almacene imagenes y no va a haber problemas con castings jeje. Esto se logra por medio de generics (si lo queres investigar fuera bueno)
Entonces el arraylist se declara así:
con este pequeño cambio estas diciendo: quiero un arraylist que solo almacene imagenes si agrego algo mas generara una excepcion. Si trato de asignar un objeto de este arraylist a una variable que no sea de tipo ImageIcon generara una excepcion. (el cambio es agregar el nombre del tipo de la clase que almacenara
entre signos mayor y menor que...).
Ahora si podemos usar nuestro arraylist y agregar nuestras imagenes
ahora si para obtenerlas (sin casting):
Como te decia la ventaja del arraylist es que tiene muchos metodos para trabajar con colecciones de objetos que son muy utiles (incluso utilidades para ordenar objetos).
Te aconsejo investigar en el api de java los metodos de la clase ImageIcon, ArrayList y el Collections de Java. Este ultimo con utilidades para ordenar los arraylist y otras cosas interesantes (aunque debes saber algo de interfases para utilizar algunos metodos pero cuando las aprendas a usar los recomiendo).
Otro consejo es hacer una clase casilla para tu monopoly y que esa clase te almacene todo lo que tiene que tener la casilla por ejemplo
la idea es que todo lo que necesitas este almacenado en la casilla (pensar en objetos).
y luego haces un arraylist de casillas, en lugar de almacenar las imagenes por separado.
y ya podes agregar todas las casillas que hallan
Casilla casilla1=new Casilla(... los parametros que lleva la casilla);
casillas.add(casilla1);
Incluso casillas podria ser tu tablero... no se es una idea.
Bueno espero te sea util tanta casaca jajaja es que no tenia nada que hacer...