Título: Cómo crear interfaces gráficas con Look And Feel en Java Publicado por: Casidiablo en 7 Noviembre 2006, 18:12 pm Cómo crear interfaces gráficas con Look And Feel en Java (http://www.casidiablo.net/wordpress/index.php/2006/11/04/como-crear-interfaces-graficas-con-look-and-feel-en-java/)
Java posee una API (Interfaz para porgramación de Aplicaciones) que es la encargada de manipular las interfaces gráficas hechas con Swing. Esta nos permite crear GUI's realmente bonitas. Pero primero necesitamos tener unos conceptos claros, como por ejemplo que es Swing y eso del Java look and feel (llamado a veces "Metal"). Los componentes de Swing están escritos en Java, sin ningún código de especificación de ventanas. Esto facilita la creación de interfaces gráficas sin tomar en cuenta el sistema de graficación de ventanas donde se trabaje, y simplificando el desarrollo de aplicaciones. Swing además soporta una arquitectura de visualización (Look And Feel). Ésta característica dota a los usuarios con la habilidad de cambiar la apariencia de una aplicación sin reiniciarla y sin que el desarrollador se tenga que cambiar por completo su conjunto de subclases. Java Look And Feel (de ahora en adelante J&F) es un API multiplataforma proporcionada por JavaSoft. Voy a ser breve, así que si necesitas información específica puedes buscar en san google. Java L&F implementa todas las funcionalidades básicas de Swing, pero tambén se extiende en otras áreas incluyendo:
El programa lo puedes encontrar en los demos que se encuentran en los JSDK. Vas a donde tienes instalado el SDK de Java y buscas la carpeta demo/jfc/Metalworks, allí encontrarás la aplicación que vamos a tomar como objeto de ejemplo. Para ejecutar el programa que ya está compilado (Metalworks.jar), digitas desde una shell: java -jar Metalworks.jar Y lo que veras es un programa como este (ten en cuenta que según tu versión del SDK el programa puede cambiar o no estar; yo utilizo el J2SDK 1.5): (http://img412.imageshack.us/img412/7373/pantallazo1yy7vc5.png) (http://img507.imageshack.us/img507/2672/pantallazo1yy7.png) Como puedes observar es una interfaz gráfica realmente bonita y llamativa. Aunque es la que viene por defecto con el L&F en su versión 5. Puedes jugar con este programita que te dará más de una sorpresa agradable. Por ejemplo vas al menú Theme y seleccionas el que quieras, veras cosas como estas:
La interfaz de usuario cambia de aspecto sin necesidad de recompilar o reiniciar la aplicación, es decir, cambia en tiempo de ejecución. Pero lo que nosotros queremos es saber como hacer esto, veámos: Creando un JFrame con el Look And Feel activado Esto es muy sencillo de hacer. Lo único que tenemos que hacer es activar el Look And Feel, pasando true como parámetro al método estático setDefaultLookAndFeelDecorated de JFrame y de JDialog. Por ej.: Código: //Ejemplo1Look .java Este programa tiene la siguiente salida: (http://img292.imageshack.us/img292/9489/lookzp9.png) Creando estilos visuales a partir de archivos de texto plano Este es uno de los tantos métodos para crear estilos o temas y consiste en crear un archivo de texto plano, que contendrá la configuración de visualización. Un ejemplo sencillo puede ser este: Código: #Aquí puedes colocar comentarios Puedes usar comentarios para documentar el tema; estos deben comenzar con el símbolo numeral (#). Y la sintaxis del tema es nombreEtiqueta=valor. Vamos a ver que significa cada etiqueta: name=Payaso indica que el tema se llama Payaso. primary1=200,0,66 es el color del borde externo primary2=0,0,255 es el color del borde interno y el foco primary3=0,255,0 es el color de la barra de titulo secondary1=255,255,0 color del borde de los botones, labels, etc secondary2=0,255,255 color de los botones al estar presionados secondary3=255,0,255 color de fondo de los botones, labels, etc black=255,255,200 color de las letras sobre las cajas de texto, etc white=25,80,150 color del fondo de las cajas de texto, areas, etc El programa que utiliza este archivo de estilo es: Código: //Ejemplo2Look .java Esta es la salida del programa, y sí, ya se que es horrible, pero es la única forma de mostrar bien para que es cada etiqueta: (http://img54.imageshack.us/img54/1501/pantallazogq8.png) Ahora, antes que se me olvide, tengo que aclarar algo. Para que el programa funcione perfectamente tenemos que usar dos programas creados por el maestro Steve Wilson: PropertiesMetalTheme.java y UISwitchListener.java. PropertiesMetalTheme, es una clase que crea un flujo hacia el archivo de texto que contenga la configuración del tema, y carga las propiedades que se encuentren allí. No voy a explicar en detalle el funcionamiento de esta clase ya que eso está fuera de los límites de este artículo, y además es muy fácil de comprender. UISwitchListener, es una clase que permite cambiar la interfaz de usuario en tiempo de ejecución, sin problemas inesperados. Creando estilos visuales simples a partir de clases Bueno, ahora vamos a ver una manera de crear estilos visuales a partir de un programa (una clase) hecho en Java. El primer programa que vamos a tomar como ejemplo es EstiloHalloween.java: Código: //Ejemplo simple de tema en clase Como ven todo es muy fácil; simplemente declaramos una clase que herede de DefaultMetalTheme, y creamos tres objetos de la clase ColorUIResource que sean privados (private) y constantes (final). Cada uno vá a simbolizar un color para la interfaz de usuario. Si no comprendes bien es porque no has leído lo de primary1, primary2, etc. allí arriba. Los objetos ColorUIResource los inicializamos con tres números separados por comas que representan un color en formato RGB. Por último declaramos tres métodos protected que retornen el valor de los objetos ColorUIResource. El programa que utiliza la clase EstiloHalloween es: Código: // Ejemplo3Look .java Como puedes ver estamos utilizando únicamente los tres colores primarios para interfaces gráficas (primary1, primary2 y primary3). La salida del programa es: (http://img161.imageshack.us/img161/8087/halloween1vp3.png) Pero ahora vamos a ver un programa que utiliza todas las combinaciones de colores; la clase es EstiloHalloween2: Código: // EstiloHalloween2.java No explico esta clase ya que tiene la misma escencia de la primera, solo que, aparte de utilizar primary1, primary2 y primary3, utiliza secondary1, secondary2 y secondary3, y el color de fondo de las cajas de texto (white) y de las letras (black). La aplicación que utiliza la clase EstiloHalloween2 es esta: Código: // Ejemplo4Look .java Esta es la apriencia del programa: (http://img402.imageshack.us/img402/7564/halloween2ua5.png) Y de nuevo: mil disculpas si se víé horrible, pero no soy diseíñador así que no me jodan XD. Adjunto la versión en PDF Y los ejercicios realizados (abajo) Bien, espero que les haya gustado el artículo, y si estás buscando algo más avanzado puedes buscar entre la documentación en línea de Java o en los demos del SDK. Y cualquier duda, sugerencia, insultos y demás, me pueden escribir al correo castidiablo@gmail.com, o por PM. Umm, se me olvidaba algo: podeis hacer con el tuto lo que quieras: copias, modificaciones, ampliaciones, etc. ¿derechos de autor? mis polainas. Saludos!!! Título: Re: Cómo crear interfaces gráficas con Look And Feel en Java Publicado por: Toxico en 8 Noviembre 2006, 18:26 pm cuando descargo el archivo, pone que esta el archivo corrupto :(
Título: Re: Cómo crear interfaces gráficas con Look And Feel en Java Publicado por: deya en 8 Noviembre 2006, 20:21 pm cuando descargo el archivo, pone que esta el archivo corrupto :( Sip, igual a mi. Seria bueno que lo corrigieran. Salu2 ;) Ah, y excelente manual. Felicidades. ! ! ! ;) Título: Re: Cómo crear interfaces gráficas con Look And Feel en Java Publicado por: Casidiablo en 8 Noviembre 2006, 20:50 pm Sep, además ni salia el tuto en pdf. Pero ya está Solucionado!!!
Gracias por informar. Saludos!!!! Título: Re: Cómo crear interfaces gráficas con Look And Feel en Java Publicado por: deya en 9 Noviembre 2006, 16:38 pm Sep, además ni salia el tuto en pdf. Pero ya está Solucionado!!! Gracias por informar. Saludos!!!! Hola. Pues no funciona el link al pdf Salu2 ;) Título: Re: Cómo crear interfaces gráficas con Look And Feel en Java Publicado por: Casidiablo en 10 Noviembre 2006, 18:51 pm Y ahora???
Título: Re: Cómo crear interfaces gráficas con Look And Feel en Java Publicado por: le_roi en 19 Diciembre 2006, 00:22 am Las descargas funcionan a la fecha, el archivo no está más corrupto -si es que lo estaba-, en pocas palabras, funcionan las descargas.
Saludos y gracias a Casidiablo. Título: Re: Cómo crear interfaces gráficas con Look And Feel en Java Publicado por: apache_scrc en 9 Diciembre 2007, 00:07 am compadre no entiendo muy bien.. necesito tu ayuda urgente , estoy trabajando con el netbeans!.. te mande un correo!
Título: Re: Cómo crear interfaces gráficas con Look And Feel en Java Publicado por: Casidiablo en 10 Diciembre 2007, 14:52 pm Mejor has un post con tus dudas (dudas específicas), de esta forma te podremos ayudar entre todos y les sirve a todos.
Un saludo! Título: Re: Cómo crear interfaces gráficas con Look And Feel en Java Publicado por: egyware en 12 Diciembre 2007, 15:00 pm Que bueno que coloques tus tutos en el foro :xD :xD
pero a mi me gustaria saber si se podra cambiar el estilo de la ventana no me refiero L&F (no los colores) si no cambiarle la forma como lo hace el programa StyleXP, osea inventar un nuevo L&F xauu Título: Re: Cómo crear interfaces gráficas con Look And Feel en Java Publicado por: Casidiablo en 13 Diciembre 2007, 21:11 pm Sí, si se puede... pero no recuerdo como es la cosa. Algo leí hace unos años, trataré de buscar algo en el PC de mi casa, pero dudo que aún conserve alguna referencia.
Un saludo! Título: Re: Cómo crear interfaces gráficas con Look And Feel en Java Publicado por: Casidiablo en 20 Diciembre 2007, 23:53 pm Que bueno que coloques tus tutos en el foro :xD :xD pero a mi me gustaria saber si se podra cambiar el estilo de la ventana no me refiero L&F (no los colores) si no cambiarle la forma como lo hace el programa StyleXP, osea inventar un nuevo L&F xauu Cita de: http://personales.ya.com/nimrod/faq.html#9 Quiero escribir mi propio Look & Feel ¿Qué necesito? Lo primero, saber programar en Java, especialmente la parte relativa a las primitivas gráficas y Java2D. Y tener algo de experiencia usando Swing sería muy útil. Después, tener el código fuente de un par de Look & Feels para ver como están hechos. Es muy instructivo ver el código de otros. También vendría muy bien tener las fuentes del JDK, para poder ver como está escrito el MetalLookAndFeel original. Eso en cuanto a la parte de código. Lo más difícil es saber qué dibujar, qué aspecto deben tener los botones, las pestañas, los combos... Una vez que se tiene claro que aspecto tendrá el nuevo Look & Feel, la mayor parte de las veces es sólo cuestión de sobrecargar los métodos paint() para dibujar el control con el aspecto que queremos. Habrá ocasiones en los que no será suficiente, y para esos casos, seguir las fuentes originales del JDK le será de gran ayuda. ¡Ánimo! Da trabajo, pero cuando se termina es muy agradable usar un aplicación que se ve exactamente como uno quiere... Espero te sirva. Título: Re: Cómo crear interfaces gráficas con Look And Feel en Java Publicado por: egyware en 26 Diciembre 2007, 16:30 pm si eso, algo estaba pensando algo parecido, bueno talvez nunca llegue a cambiar
el estilo de la ventana pero estaba pensando cambierles la forma a los componentes creo que se usa una clase llamada ButtonUI (para los botones) y asi de poco luego me paso por PanelUI y asi como jugando me creo toda una interface grafica Gracias casidiablo yo me encontre un link en las paginas de java sobre LookAndFeel lo voy a buscar espera un ratito . . . . aqui está http://java.sun.com/products/jlf/ed2/book/ Título: Re: Cómo crear interfaces gráficas con Look And Feel en Java Publicado por: Casidiablo en 26 Diciembre 2007, 18:51 pm Menudo enlace!
Gracias por el aporte! Título: Re: Cómo crear interfaces gráficas con Look And Feel en Java Publicado por: jorgemora en 11 Diciembre 2011, 19:56 pm hola, necesito saber si se puede hacer un programa en java en donde por intermedio de una interfaz pueda visualizar señales analogicas desde un equipo y pueda activar y desactivar reles.
gracias, serviradios@hotmail.com Título: Re: Cómo crear interfaces gráficas con Look And Feel en Java Publicado por: jorgemora en 11 Diciembre 2011, 19:58 pm Hola , necesito saber si se puede crear un programa con java que por intermedio de una interfaz conectada a la entrada usb pueda visualiar señales analogas y encender y apagar reles.
gracias, serviradios@hotmail.com |