miércoles, 29 de septiembre de 2010

Componentes avanzados de swing

Modelo de Color RGB

El modelo de color RGB, del inglés Red, Green, Blue, hace referencia a la composición de colores en términos de la intensidad de los colores primarios con que se forma: el rojo, el verde y el azul. Es un modelo de color basado en la síntesis aditiva, con el que es posible representar un color mediante la mezcla por adición de los tres colores luz primarios. Indicar que el modelo de color RGB no define por sí mismo lo que significa exactamente rojo, verde o azul, razón por la cual los mismos valores RGB pueden mostrar colores notablemente diferentes en diferentes dispositivos que usen este modelo de color. Aunque utilicen un mismo modelo de color, sus espacios de color pueden variar considerablemente.

JSlider

Los objetos JSlider permiten al usuario seleccionar de entre un rango de valores enteros, La clase JSlider hereda de JComponent. Está compuesto por el indicador, con el que seleccionamos el valor deseado y las marcas, que nos muestran cuáles son los valores a escoger.

JSpinner

Los objetos JSpinner permiten al usuario seleccionar un número y recorrer la lista de los mismos.

Apariencia Visual Adaptable

Los componentes Swing por el hecho que son controles ligeros, es decir que no dependen de la plataforma para asumir una apariencia visual, se pueden adaptar a otras “pieles” o Look and Feels. Sehace con la clase UIManager. Para esta guía utilizaremos el Look and Feel Substance

Luego de esta introducción teórica, para empezar esta guía, construyamos una GUI con el Netbeans
Designer que luzca así:



Moviendo los JSliders o modificando la cantidad de los JSpinners debemos modificar el color que se muestra en el panel de la derecha. Para ello, crearemos un método en el cual le cambiaremos el color del panel con su método setBackground() crearemos un nuevo color con modelo RGB con la ayuda de los valores de cada JSlider o JSpinner:


public void cambiarColor()
{
colorJPanel.setBackground( new java.awt.Color(
JSliderRojo.getValue(), JSliderVerde.getValue(),
JSliderAzul.getValue() ) );
}


Cada JSlider y JSpinner debe modificar al control contrario pero que manejan el mismo color. En los eventos StateChange() de cada uno debe ir código similar a este:


//Codigo para JSlider y JSpinner del color ROJO

//codigo evento JSlider: modifica el valor de JSpinner y manda a modificar el color del JPanel
private void redJSliderStateChanged(javax.swing.event.ChangeEvent evt) {
this.spnRojo.setValue(this.JSliderRojo.getValue());
changeColor();
}

//codigo evento JSpinner: modifica el valor de JSlider y manda a modificar el color del JPanel
private void spnRojoStateChanged(javax.swing.event.ChangeEvent evt) {

this.JSliderRojo.setValue((Integer)spnRojo.getValue());
changeColor();
}


La aplicación debe lucir así:







Esperamos que este post haya sido de mucha utilidad

0 comentarios:

Publicar un comentario