2012-06-25 63 views
9

¿Podría alguien explicarme en modo noob cuál es la diferencia entre ImageIcon y Image clases/objetos en Java? GraciasJava: ImageIcon vs. Diferencia de imagen

+1

¿Es esta tarea? Todo lo que se necesita para responder a esta pregunta debe documentarse en los javadocs. – user1329572

+13

No, no es una tarea. Para esta pregunta, como para la gran mayoría de mis otras preguntas sobre Java, la información se puede encontrar en javadocs. Pero si pudiera entender todo, desde javadocs, no necesitaría ningún libro, foro o google o incluso internet para ese asunto. –

Respuesta

8

Su naturaleza y aplicación es diferente. Image es una superclase abstracta de todas las clases que representan imágenes gráficas. ImageIcon es una implementación de la interfaz Icon que usa Image como fuente.

Editar: Piense en un Image como algo que podría ser prestados y un ImageIcon como algo que se mostrado como una Icon cuando se llama a su método paintIcon().

Editar: Los enlaces de arriba lo llevarán a la API de JDK 6. Estos enlaces lo llevarán al JDK 8 api: Image y ImageIcon.

+0

Ok, ¿el objeto 'ImageIcon' tiene un objeto' Image' subyacente y proporciona una capa adicional con métodos para manipular esta imagen? Además, 'Icon' se puede implementar de varias maneras y no necesariamente para tener la imagen subyacente (por ejemplo, pintar una etiqueta o un rectángulo). ¿O estoy equivocado? Simplemente no entiendo completamente, si el icono es solo una imagen pequeña, ¿por qué tener dos clases diferentes para eso? –

+2

@LeNoob 'Icon' se usa generalmente para decorar componentes (etiquetas, botones, etc.), es decir, están pintados en algo. 'Image', por otro lado, no es solo para mostrar, se puede usar para dibujar sobre él. Eche un vistazo al tutorial [Imágenes] (http://docs.oracle.com/javase/tutorial/2d/overview/images.html) para ver algunos ejemplos. [Cómo usar iconos] (http://docs.oracle.com/javase/tutorial/uiswing/components/icon.html) también puede ser útil. – tenorsax

1

Puede escalar y guardar la imagen, pero no puede hacerlo con ImageIcon. Para crear imágenes en su GUI, generalmente debe usar ImageIcon, pero si no quiere hacerlo, la imagen debería ser mejor.

+0

Pero si 'ImageIcon' tiene una imagen subyacente, ¿cómo es que no puedo guardarla y escalarla? –

Cuestiones relacionadas