Java - Imagenes en Array

   
Vista:

Imagenes en Array

Publicado por nene (11 intervenciones) el 05/09/2007 06:24:15
Tengo un problema, necesito poner imagenes en un array para un tablero de Monopoly, es decir en el JFrame me tienen que salir las imagenes que dividi por casillas... pero no encuentro el modo de crear eso... alguien me puede ayudar???
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Imagenes en Array

Publicado por angel (537 intervenciones) el 05/09/2007 12:45:12
Pues depende de en que tipo de clase guardes las imagenes.
Por ejemplo, si las guardas en un ImageIcon, pues creas un array de ImageIcon: ImageIcon [] imgI = ....

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Imagenes en Array

Publicado por Fernando (8 intervenciones) el 08/09/2007 00:38:08
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

listaPersonas.add(p1);
listaPersonas.add(p2);

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:

Persona aux; // se declara una variable de tipo persona para referenciar a la
//persona que se va a obtener del arraylist

aux=(Persona)listaPersonas.get( 0 ); //aqui utilizas el casting, si no lo utilizaras
//generaria un error por que estarias
//asignado una Objeto a una Persona
//(Objetos de esos tipos).

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

ImageIcon imagen1=new ImageIcon("C:\\Carpeta Img\\imagen1.jpg");
ImageIcon imagen2=new ImageIcon("C:\\Carpeta Img\\imagen2.jpg");

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í:

ArrayList<ImageIcon> listaImagenes=new ArrayList<ImageIcon>ArrayList();

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

listaImagenes.add(imagen1);
listaImagenes.add(imagen2);

ahora si para obtenerlas (sin casting):

ImageIcon imagenAux=listaImagenes.get( 0 );// no generará error


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

class Casilla{
Jugador jugadorActual;
ImageIcon iconoCasilla;
//mmm no se que mas tendria


}

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.

ArrayList<Casilla> casillas=new ArrayList<Casilla>();

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...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Imagenes en Array

Publicado por nene (11 intervenciones) el 08/09/2007 15:08:59
Si me fue de gran utilidad!!... gracias me diste una muy buena idea para el monopoly... gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imagenes

Publicado por Guillermo Gonzalez (1 intervención) el 05/12/2007 17:44:35
Necesito el codigo fuente de un programa en java en el netbeans que tenga imagenes, principalmente en paneles y botones, quisiera qe fuesen estos ejemplos en un mismo programa, es decir para insertar imagenes en botones, paneles, y si hay algun tipo de componente en el netbeans para insertar imagenes en el programa, por favor, necesito saber cual es y un programa de ejemplo. Les agradeceria que me ayudaran, lo necesito para mi tesis.

muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:imagenes

Publicado por Angel  (1 intervención) el 12/12/2010 21:21:00
Puedes introducir imagenes en muchos componentes, simplemente en la propiedad icon, le indicas la imagen que deseas y la cargara. Eso si quizas debas redimensionarla. Se puede incrustar en Jlabel, Jbuton, JPanel... etc, en muchos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar