domingo, 12 de agosto de 2012

Cambiar la Aparencia de un JFrame [Java] [Substance]

Hola señores, me encuentro de regreso, les cuento que hace años cuando comenzaba en el mundo de los Blogs y de la programación en Java encontré una libreria que permitirá poner "Skins" a las ventanas, en aquel momento a mis 14 años intente hacer una ventana y colocarle una apariencia diferente, pero da la casualidad que Java nada que ver con Visual Basic [ <3 <Cara de ternura> ] por lo que jamas pude hacer nada.

Hoy a mis 19 años <unos cuantos días recién cumplidos> con un pie en el Tercer Semestre de Ing. Sistemas Computacionales, lo intente de nuevo y éxito! :D. La librería se llama Substance y tiene 2 métodos que te facilitaran la vida. 

Para usarlo debes de agregar el .jar al proyecto < En NetBeans: Clic derecho en Bibliotecas>Agregar Archivo Jar>Elijes el archivo > y en las cabeceras de tu clase principal debes importar la librería con el siguiente código:


  • import org.jvnet.substance.SubstanceLookAndFeel;
Ahora! en el constructor de tu clase <En mi caso se llama Ventana>  después de iniciar el método initComponents debes de incluir el siguiente código para indicar que activaras el uso de Substance:
  • Ventana.setDefaultLookAndFeelDecorated(true);

Ahora lo que falta es definir que skin usaremos para eso podemos <o no> crear una variable de tipo String con cualquiera de estos valores:


  1. String skin="org.jvnet.substance.skin.AutumnSkin";
  2. String skin=" org.jvnet.substance.skin.BusinessBlackSteelSkin ";
  3. String skin=" org.jvnet.substance.skin.BusinessBlueSteelSkin ";
  4. String skin=" org.jvnet.substance.skin.BusinessSkin ";
  5. String skin=" org.jvnet.substance.skin.CremeCoffeeSkin ";
  6. String skin=" org.jvnet.substance.skin.CremeSkin ";
  7. String skin=" org.jvnet.substance.skin.EmeraldDuskSkin ";
  8. String skin=" org.jvnet.substance.skin.FieldOfWheatSkin ";
  9. String skin=" org.jvnet.substance.skin.FindingNemoSkin ";
  10. String skin=" org.jvnet.substance.skin.GreenMagicSkin ";
  11. String skin=" org.jvnet.substance.skin.MagmaSkin "; 
  12. String skin=" org.jvnet.substance.skin.MangoSkin ";
  13. String skin=" org.jvnet.substance.skin.MistAquaSkin ";
  14. String skin=" org.jvnet.substance.skin.ModerateSkin ";
  15. String skin=" org.jvnet.substance.skin.NebulaBrickWallSkin ";
  16. String skin=" org.jvnet.substance.skin.NebulaSkin ";
  17. String skin=" org.jvnet.substance.skin.OfficeBlue2007Skin ";
  18. String skin=" org.jvnet.substance.skin.OfficeSilver2007Skin ";
  19. String skin=" org.jvnet.substance.skin.RavenGraphiteGlassSkin ";
  20. String skin=" org.jvnet.substance.skin.RavenGraphiteSkin ";
  21. String skin=" org.jvnet.substance.skin.RavenSkin ";
  22. String skin=" org.jvnet.substance.skin.SaharaSkin ";

Ahora solo hay que llamar al método que colocara el skin teniendo como parámetro la variable que declaramos <skin> con el valor elegido, toma en cuanta que cada variable skin es una apariencia diferente! puedes probar algunos, un poco mas abajo adjunto unas imágenes con 2 que probé:


  • SubstanceLookAndFeel.setSkin(skin);
Listo! cuando corras tu programin podría quedar verde como Hulk si usas el skin EmeraldDuskSkin:



Si usas el skin AutumnSkin podría quedar así:



Ahora, si deseas bajar el pequeño proyecto que hice da clic aqui.

<El hipervinculo de la librería se encuentra en la palabra Substance  en el segundo párrafo de arriba>

Bueno espero les sea de utilidad esta publicación, ya existe demasiadas sobre este tema pero su contenido <ligas> son un poco antiguas, Suerte!


    Choose :
  • OR
  • To comment
11 comentarios:
Write comentarios
  1. Cordial Saludos!
    Gracias por tu GRAN aporte, te felicito por estar tan adelantado siendo tan joven.

    ResponderEliminar
  2. Por cierto, ando buscando uno parecido a BlackEye (no se si lo has visto, es el mismo que se aprecia cuando le aplicas el tema al JDownloader) que sea compatible con el JDK 1.7, si tienes alguna informacion disponible, le agradeceria.

    ResponderEliminar
    Respuestas
    1. Gracias por tus comentarios :) lo siento! no tengo información sobre BlackEye pero intentare buscar algo! saludos.

      Eliminar
  3. Gracias por tus aportaciones...como hago para que cambie los bordes de la ventana?

    ResponderEliminar
    Respuestas
    1. Hola, de nada, te comento que para cambiar el borde de las ventanas no he encontrado forma, seguiré investigando, saludos.

      Eliminar
  4. se ven bien culeras las interfaces de esa manera, pero buen aporte wey

    ResponderEliminar
    Respuestas
    1. Si, desgraciadamente no he encontrado algo mejor para la apariencia, gracias.

      Eliminar
    2. A mi parecer no todas están mal, puedo mencionar el skin "Business Black Steel" y decir que con seguridad lo utilizaría para un proyecto final.

      cuchox, muchas gracias por tu aporte, me parece excelente, además me es entretenido trabajar con clases nuevas y analizar sus métodos, en el caso de la clase "SubstanceLookAndFeel", para lo que sirve, está bastante completa, me gustaría saber como puedo obtener mas skins.
      ¡Saludos!

      Eliminar
    3. Gracias colega, más skins, eso mismo pretendía investigar, si llego a encontrar más ten por hecho que las publicaré, saludos :D

      Eliminar
  5. //Una forma mas acertada seria:

    initComponents();
    JFrame.setDefaultLookAndFeelDecorated(true);
    SubstanceLookAndFeel.setSkin("org.jvnet.substance.skin.CremeCoffeeSkin");

    ResponderEliminar
  6. Hola. y si quiero que mi programa, en vez de aquella ventana de forma cuadrada, tenga otra forma, por ejemplo, no sé, la de un árbol, la de una maquina de loteria, o un conejito. Se puede hacer eso?

    ResponderEliminar