Cambiar de apariencia de tus aplicaciones en Java [Substance]

Buenas tardes tengan uds queridos lectores!, en esta entrada voy a tratar un tema que para mi es importante en Java, ya que a la hora de realizar aplicaciones el look & feel de Java no resulta ser muy atractivo.

Substance es una libreria que pueden descargar de aqui o de la pagina de Java. Esta libreria te permite cambiar el look and feel de tus aplicaciones en Java, el tema y hasta agregar marcas de agua, en este post veremos unas cuantas de las funciones que proporciona esta libreria.

Primero para mostar un pequeño ejemplo de una aplicacion en la que utilize substance, solo para cambiar el L&F:

image

image

Agregando la libreria

Primero que nada se guardan la libreria del link que les he compartido, y la guardan en un lugar que acostumbren guardar librerias y vamos a agregarla a NetBeans para usarla de una forma accesible.

Primero que nada nos vamos al menu Tools->Libreries y en la pantalla que nos aparece damos clic en NewLibrary

Escribimos el nombre de nuestra libreria, que en este caso sera Substance ( o el nombre que deseen) y en el  boton “ADD Jar/Folder” damos la ruta en donde guardamos  nuestra libreria descargada:

image

De esta manera ya tenemos nuestra libreria agregada al classPath y la tendremos de una manera muy accesible.

Ahora creamos un proyecto nuevo, una aplicacion de Java en Netbeans y agregamos la libreria

image

y en el dialogo que aparece agregamos la libreria que hemos creado anteriormente (Substance o como le hayan llamado)

Cambiando de Skin

Ahora si!, creamos una interfaz random, solo para probar la libreria en mi caso yo cree esto:

image

Ahora para comenzar, nos vamos al codigo del JFrame creado y en el constructor pondremos lo siguiente:

image

Recuerden agregar los 2 imports necesarios para estas clases que son:

import javax.swing.JFrame;
import org.jvnet.substance.SubstanceLookAndFeel;

Hay una variedad de skins, pero el que he usado se mira de esta manera

image

Valla que cambio verdad!

El poco codigo que se hizo es simple, lo que hace JFrame.set… es que nos permite por asi decirlo que substance se encargue del decorado, y la siguiente instruccion es la que establece el Skin y de parametro se da que skin, aqui les dejo el listado de skins disponibles en esta libreria:

-org.jvnet.substance.skin.AutumnSkin
- org.jvnet.substance.skin.BusinessBlackSteelSkin
- org.jvnet.substance.skin.BusinessBlueSteelSkin
- org.jvnet.substance.skin.BusinessSkin
- org.jvnet.substance.skin.CremeCoffeeSkin
- org.jvnet.substance.skin.CremeSkin
- org.jvnet.substance.skin.EmeraldDuskSkin
- org.jvnet.substance.skin.FieldOfWheatSkin
- org.jvnet.substance.skin.FindingNemoSkin
- org.jvnet.substance.skin.GreenMagicSkin
- org.jvnet.substance.skin.MagmaSkin
- org.jvnet.substance.skin.MangoSkin
- org.jvnet.substance.skin.MistAquaSkin
- org.jvnet.substance.skin.ModerateSkin
- org.jvnet.substance.skin.NebulaBrickWallSkin
- org.jvnet.substance.skin.NebulaSkin
- org.jvnet.substance.skin.OfficeBlue2007Skin
- org.jvnet.substance.skin.OfficeSilver2007Skin
- org.jvnet.substance.skin.RavenGraphiteGlassSkin
- org.jvnet.substance.skin.RavenGraphiteSkin
- org.jvnet.substance.skin.RavenSkin
- org.jvnet.substance.skin.SaharaSkin

Si uso el tema “org.jvnet.substance.skin.OfficeSilver2007Skin” se mirara de esta manera

image

Cambiando de tema

Ahora que ya hemos cambiado de Skin, podemos cambiar de tema, esto significa que podemos cambiar de colores y entre otras cosas:

Para hacer esto, se hace despues de haber puesto el Skin, lo hacemos de la siguiente manera:

image

Y el resultado sera el siguiente!

image

Tal vez por este sking que elegi no se nota mucho el cambio, mas que unos cuantos colores, pero en otros skins si se ven grandes cambios!

la lista de temas en la que podemos elegir es la siguiente:

- org.jvnet.substance.theme.SubstanceAquaTheme
- org.jvnet.substance.theme.SubstanceBarbyPinkTheme
- org.jvnet.substance.theme.SubstanceBottleGreenTheme
- org.jvnet.substance.theme.SubstanceBrownTheme
- org.jvnet.substance.theme.SubstanceCharcoalTheme
- org.jvnet.substance.theme.SubstanceCremeTheme
- org.jvnet.substance.theme.SubstanceDarkVioletTheme
- org.jvnet.substance.theme.SubstanceDesertSandTheme
- org.jvnet.substance.theme.SubstanceEbonyTheme
- org.jvnet.substance.theme.SubstanceJadeForestTheme
- org.jvnet.substance.theme.SubstanceLightAquaTheme
- org.jvnet.substance.theme.SubstanceLimeGreenTheme
- org.jvnet.substance.theme.SubstanceNegatedTheme
- org.jvnet.substance.theme.SubstanceOliveTheme
- org.jvnet.substance.theme.SubstanceOrangeTheme
- org.jvnet.substance.theme.SubstancePurpleTheme
- org.jvnet.substance.theme.SubstanceRaspberryTheme
- org.jvnet.substance.theme.SubstanceSaturatedTheme
- org.jvnet.substance.theme.SubstanceSepiaTheme
- org.jvnet.substance.theme.SubstanceSteelBlueTheme
- org.jvnet.substance.theme.SubstanceSunGlareTheme
- org.jvnet.substance.theme.SubstanceSunsetTheme
- org.jvnet.substance.theme.SubstanceTerracottaTheme

Agregando marca de agua

En este caso pues a mi no me gusta mucho usarlas, pero puede ser util para dar una apariencia mas atractiva en diferentes aplicaciones. Para agregar una marca de agua solo tenemos que agregar esta linea de codigo”

SubstanceLookAndFeel.setCurrentWatermark(“org.jvnet.substance.watermark.SubstanceBinaryWatermark”);

Esta la agregamos debajo de donde ponemos el tema y se verda de la siguiente manera:

image

Creo en la imagen ni se aprecia bien! XD es de 0’s y 1’s XD

Aqui el listado de diferentes Watermarks:

- org.jvnet.substance.watermark. SubstanceBubblesWatermark
- org.jvnet.substance.watermark. SubstanceBinaryWatermark
- org.jvnet.substance.watermark. SubstanceCopperplateEngravingWatermark
- org.jvnet.substance.watermark. SubstanceCrosshatchWatermark
- org.jvnet.substance.watermark. SubstanceFabricWatermark
- org.jvnet.substance.watermark. SubstanceGenericNoiseWatermark
- org.jvnet.substance.watermark. SubstanceImageWatermark
- org.jvnet.substance.watermark. SubstanceKatakanaWatermark
- org.jvnet.substance.watermark.SubstanceLatchWatermark
- org.jvnet.substance.watermark. SubstanceMagneticFieldWatermark
- org.jvnet.substance.watermark. SubstanceMarbleVeinWatermark
- org.jvnet.substance.watermark.SubstanceMazeWatermark
- org.jvnet.substance.watermark. SubstanceMetalWallWatermark
- org.jvnet.substance.watermark.SubstanceNoneWatermark
- org.jvnet.substance.watermark.SubstanceNullWatermark
- org.jvnet.substance.watermark. SubstancePlanktonWatermark
- org.jvnet.substance.watermark. SubstanceStripeWatermark
- org.jvnet.substance.watermark. SubstanceWoodWatermark

Esto es todo por hoy! espero y les sea de utilidad Open-mouthed smile saludos!

About these ads

28 comentarios en “Cambiar de apariencia de tus aplicaciones en Java [Substance]

  1. que rollo we oie no me podrias pasar esa base de datos necesito hacer un proyecto de fundamentos de BD y me seria de mucho a pollo tener esa como ejemplo ya que en inter pss no encuentro mucho, bueno si se arma hay me dices en conta jaaj si no ps nii pexx jjej chido..

  2. que tal,, oie si eso es lo que andaba buscando un tutorial esta muy bien ya con eso se arma el rolloo ya le di un vistazo y es de gran utilidad no se si tienes la segunda parte del post o solo es esa te agradeceria si la pusieras.. saludos…

    • Hola Tony!.

      Ese post esta completo, en la programación en Java solo se dan altas y bajas, ya que es un sistemita un poquito largo, si duraría mucho en postearlo!, pero las bases alli estan!.

      Saludos! y suerte con el fin de semestre!

  3. que tal issac me fue de mucha utilidad tu post,ya tengo mi base hecha tanto para los clientes como para las pelis como consultar,borrar,eliminar y actualizar que pss es lo mas basico que se hace en mysql, sigue posteando CYA !!!

  4. Genial alfin esto es lo que he estado buscando desde hace ya mucho tiempo……..

  5. Que onda mi balu, Hay alguna forma de crear mis propios look and feels conoces alguna herramienta? me interesaria mucho eso para personalizar mejor mis Aplis … saludillos!

  6. Excelente tutorial, pero tengo una duda… Como le hago para poder cambiar de un skin a otro en tiempo de ejecución?? Gracias

  7. ¿Podrías explicar con un ejemplo? si no es molestia… Gracias :)

  8. Quiero colocar un Menú en un GUI java donde el Usuario pueda elegir un skin en tiempo de ejecución. ¿Como Podria Crearlo?

    • Mira, ya como tu crees tu GUI, tienes que mandar a llamar el metodo setSkin(“cadenaDelSkin”); para poder cambiar de skin en tiempo de ejecucion tenemos el siguiente listado que puedes sustituir en la cadenaDelSkin:

      -org.jvnet.substance.skin.AutumnSkin
      - org.jvnet.substance.skin.BusinessBlackSteelSkin
      - org.jvnet.substance.skin.BusinessBlueSteelSkin
      - org.jvnet.substance.skin.BusinessSkin
      - org.jvnet.substance.skin.CremeCoffeeSkin
      - org.jvnet.substance.skin.CremeSkin
      - org.jvnet.substance.skin.EmeraldDuskSkin
      - org.jvnet.substance.skin.FieldOfWheatSkin
      - org.jvnet.substance.skin.FindingNemoSkin
      - org.jvnet.substance.skin.GreenMagicSkin
      - org.jvnet.substance.skin.MagmaSkin
      - org.jvnet.substance.skin.MangoSkin
      - org.jvnet.substance.skin.MistAquaSkin
      - org.jvnet.substance.skin.ModerateSkin
      - org.jvnet.substance.skin.NebulaBrickWallSkin
      - org.jvnet.substance.skin.NebulaSkin
      - org.jvnet.substance.skin.OfficeBlue2007Skin
      - org.jvnet.substance.skin.OfficeSilver2007Skin
      - org.jvnet.substance.skin.RavenGraphiteGlassSkin
      - org.jvnet.substance.skin.RavenGraphiteSkin
      - org.jvnet.substance.skin.RavenSkin
      - org.jvnet.substance.skin.SaharaSkin

      Saludos!

  9. Gracias capo, estaba buscando esta libreria ya que de su pagina oficial ya no se puede descargar.

    Me sirvio de mucho, gracias!!!!

  10. Compa te agradesco infinitamente pues otros post idiotas nunca lograron la eficacia y rapidez efectiva con la que explicas como se debe realizar sin tanto choro ;)
    te agradesco mucho n,n

  11. Excelente libreria. Muchas gracias

  12. Hola Issac, ya he trabajado con esta libreria Substance en JAVA y es excelente, pero tengo un inconveniente, ahora estoy trabajando en C# con visual studio y estoy en busca de una libreria asi como Substance pero en C#, conoces o me recomiendas alguna, soy Ingeniera de sistema en proceso de tesis.. Gracias

    • Saludos!,

      Para crear aplicaciones con un Look and Feel diferente o personalizado en C#, tienes que usar Windows Presentation Foundation, que es una variante de Silverlight pero para Aplicaciones de escritorio. Es muy similar a Win Forms pero si cambia un poco al momento de crear GUI’s, pero te abre las posibilidades de crear cualquier aplicacion con cualquier estilo y animacion.

  13. amigo muchas gracias excelente me haz colaborado mucho con este ejemplo te agradezco
    y quisiera saber como puedo obtener el texto de un Jcombobox y pasarlo a un metodo??? he aprendido a paar y obtener valores de controles con los metodos set y get pero no consigo como solucionar mi problema con estos metodos una ayuda porfavor….

    • Hola vianey, vi tu duda y me permito contestar.

      Los JcomboBox poseen un método llamado getSelectedItem(), que te retorna la opción seleccionada como un objeto, pero supongamos que lo que quieres es guardar dicha opción como un String entonces tendrías que hacer lo siguiente.

      tuCombo= new JcomboBox(); //tu Combo es la instancia de JComboBox

      String opcionSeleccionada= tuCombo.getSelectedItem().toString();

      y esa variable (opcionSeleccionada) podrías usarla como cualquier variable, es decir pasarla dentro de un método, un constructor, etc..

      Por ejemplo, si quisieras pasarla como parámetro en la llamada a un método podrías hacerlo de la siguiente manera:

      tuMetodo(opcionSeleccionada);

      En fin las posibilidades son infinitas, espero haberte podido ayudar un poco. Suerte =)

  14. Buen post Isaac, muy fácil de entender y de mucha ayuda. Gracias!! =)

  15. oies pasa que tengo un jcombo que lo lleno de la siguiente manera:
    List lista=null;
    lista=ljc.getByActivo();
    for (Libros e:lista){
    jComboBox1.addItem(e);
    }

    y eso sin el tema funciona bien, pero una vez que le pongo el tema ya no se ve nada, le quito el tema y se ve bien, se lo añado y ya no, :D , saben que onda con eso??

  16. Justo lo que necesitaba, Gracias Isaac!!

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s