viernes, 14 de noviembre de 2008

Cambiar ícono a un JFrame

Un visitante de mi blog me pidió que le dijera cómo cambiar el ícono de los JFrame. Pero como este tip puede ser útil para toda la comunidad, decidí escribirlo aquí en mi blog.

Paso 1
El ícono debe ser una imagen de extensión PNG. Esto se hace más fácil, ya que conseguir una figura y convertirlo en formato .ico es muy complicado. Los PNG nos ayudan bastante.

Paso 2
La imagen que será el ícono debe estar dentro del paquete de fuentes, como si fuera una clase más. Si estuviera dentro de un paquete, sería mucho mejor.

Paso 3
En el código del JFrame que vamos a poner el ícono, sobreescribimos el método getIconImage() conteniendo el siguiente código: (notar cómo se está llamando a la imagen .png)

@Override
public Image getIconImage() {
   Image retValue = Toolkit.getDefaultToolkit().
         getImage(ClassLoader.getSystemResource("resources/icono.png"));


   return retValue;
}

Paso 4
En la vista de diseño del JFrame, lo seleccionamos y vamos sus propiedades, buscamos la propiedad "iconImagen" y hacemos clic en el botón de puntos suspensivos. Se mostrará una ventana de diálogo como esta:

De la lista desplegable, seleccionamos "Valor de componente existente". Esto hará que cambie la ventana a la siguiente forma:


Seleccionamos la opción "Propiedad" y hacemos clic en el botón de puntos suspendidos. Aparecerá una ventana de diálogo más pequeña, y seleccionamos la propiedad "iconImage" que aparece ahí.


Clic en Aceptar, y se verá así:
y nuevamente clic en "Aceptar" para cerrar la ventana de selección de imagen.

Ahora, veremos que las propiedades del JFrame ya tiene un nuevo valor



Paso 5
Ejecutamos la aplicación con el JFrame, y voila! nuestro JFrame con un ícono diferente



7 comentarios:

  1. private void inicializar() {
    ImageIcon icono = new ImageIcon("src/interfaces/ico.png");
    this.setIconImage(icono.getImage());
    }

    ResponderEliminar
    Respuestas
    1. Muy Bueno Brother!
      Me sirvió, Gracias!!!

      Eliminar
  2. Muchas Gracias por tu aporte.. me a servido de mucho :D saludos..

    ResponderEliminar
  3. el tutorial al parecer esta hecho para NetBeans y ps yo estoy en JDeveloper (Aparte de que nunca uso la vista de diseño) y no funciono, pero el comentario de Daniel tiene una respuesta mucho mas sencilla y general que sirve a la perfeccion

    ImageIcon icono = new ImageIcon("src/interfaces/ico.png");
    this.setIconImage(icono.getImage());

    ResponderEliminar
  4. Grandioso, me gusto la ingeniosa solución, era lo que estaba buscando desde hace ya un buen de rato, gracias...

    ResponderEliminar

Si quieres hacer una pregunta más específica, hazla en los foros que tenemos habilitados en Google Groups


Ah! solo se permiten comentarios de usuarios registrados. Si tienes OpenID, bienvenido! Puedes obtener su OpenID, aquí: http://openid.net/