miércoles, 9 de febrero de 2011

Cambio de formas de botones, usando Substance Look And Feel.

Ahora veremos como cambiar la forma de un botón con el uso de la librería substance, la misma que nos permite darle un estilo de redondeado como las siguientes:

Este es un botón swing normal:

Ahora un botón normal aplicando substance(esta seleccionado):

Esto se logra al aplicar la substance a nuestra ventana, como lo vimos aquí, el color depende del tema que se le aplique a nuestra interfaz.

Colocarle una forma al botón para redondear sus bordes..:

Para cambiar la forma de un botón podemos modificarlo después del 
initComponents()..:



public Ventana() {
        initComponents();
        this.btnNuevo.putClientProperty( SubstanceLookAndFeel.BUTTON_SHAPER_PROPERTY, new StandardButtonShaper());
}


Con esto conseguimos que un botón como el siguiente:

StandardButtonShaper()
O bien si lo hacemos con una altura y un ancho determinado, podremos obtener algo así: 
StandardButtonShaper()


Hacer un botón abierto redondeando sólo uno de sus lados:

Para modificar los botones de nuestra interfaz lo tenemos que hacer luego del initComponents() de nuestra ventana, es decir después de haber creado los botones, podemos modificar algunos controles, pero en este caso veremos sólo con los botones. Para ello modificamos la propiedad putClientProperty de cada botón Swing a modificar ejm:

public Ventana() { //Constructor de nuestra Ventana, la cual contiene los botones.
        initComponents();

        this.btnNuevo.putClientProperty( SubstanceLookAndFeel.BUTTON_SHAPER_PROPERTY, new StandardButtonShaper());
        this.btnNuevo.putClientProperty( SubstanceLookAndFeel.BUTTON_SIDE_PROPERTY, SubstanceConstants.Side.RIGHT);
        this.btnNuevo.putClientProperty( SubstanceLookAndFeel.BUTTON_OPEN_SIDE_PROPERTY, SubstanceConstants.Side.RIGHT);
}


Con este código nos resulta el botón:
Side.RIGHT
Así mismo cambiando el Side podremos obtener cualquiera de las siguientes formas en los botones:
Side.LEFT

Side.TOP

Side.BOTTOM

Nota-Recomendación: He notado que si no tenemos un texto en el botón, este no toma la forma deseada, es decir: si tengo la propiedad text del botón vacía, no se aplican las formas a los botones como lo vimos en la parte superior, para ello lo que hice fué colocar un espacio vacío en la propiedad text(" ") y funcionó correctamente.

Espero les sirva de ayuda...

5 comentarios:

  1. Que tal exelente guia,
    pero cuando agrego una imagen en vez de texto coje la forma original del texto como puedo hacer para que sequede redondo??

    Gracias Saludos

    ResponderEliminar
  2. no me funciona lo de redondear los botones no me sale errores inporte la substance y todo y nada me gustaria saber el porque me pasa esto, gracias por leer mi duda

    ResponderEliminar
    Respuestas
    1. yo tengo la misma duda .__. solo quiero el pinshiii boton redondeadito y saliendo del fondo :'(

      Eliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. Muy bueno pero tengo una pregunta, ¡Como hago para cambiar formas en otros controles así como en los botones redondeados ahora con tablas, barras de progreso, menús, entre otros?

    ResponderEliminar