Componentes visuales personalizados

Hola!!! Hace un tiempo que me puse a buscar sobre como personalizar algunos componentes visuales en java (cambiar la apariencia de un botón, o de un menú, etc) la única solución que encontré en otros blogs fue usar setIcon() en un botón, pero con esto solo logro poner una imagen en el botón pero sigue con su forma cuadrada.
Entoces me gustaría si ustedes me dieran algún concejo de como crear componentes para agregarlos a mis gui para darle mejor aspecto!!!
Bueno desde ya muchas gracias por cualquier información que puedan pasarme, espero sus respuestas!!!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de benek

Substance

Checa substance:

Salute.

Imagen de neko069

Napkin rifa...

Igual algo más fuera de lo común... checa Napkin

Look and feel

Hola Fidus.

Si deseas cambiar la apariencia general de todos los componentes puedes utilizar un Look And Feel. Este componente se encarga de manejar la apariencia visual de los componentes y la forma en la que el usuario interactua con ellos (esta arquitectura es la MVC).

Llevo varios años desarrollando aplicaciones en Swing y lamentablemente la lista de look and feels se ha ido decrementando. Los que he usado ultimamente son Ah03 y Substance. Lamentablemente la página para Ah03 ya no está disponible y el desarrollador de Substance (Kirill Grouchnikov) ha decido suspenderlo (, ). Si el problema de mantenimiento no te preocupa, es aún una buena opción.

Existen algunos otros look and feels () pero llegan a presentar problemas en el rendering de los componentes. Lamentablemente, como muchos de los look and feels son open source se han ido abandonando poco a poco. Una opción comercial es utilizar Synthetica () o la otra es utilizar Nimbus que viene incorporado en las últimas versiones de la maquina virtual (si no mal recuerdo a partir de Java 6 update diezytantos).

Ahora si quieres tomar el control completo de como quieres q aparezcan los botones puedes crear tu propia clase que herede de JButton y sobre- escribir el método paintComponent utilizando el API de Java 2D para pintar tu botón (podrias pintar una imagen de fondo, por ejemplo).

Es importante no sólo considerar que una aplicación se vea "bien" si no que debe ser fácil de utilizar, sin complejidades, no confundir al usuario y bien organizada. Creo que esto lo puedes lograr utilizando sencillamente el look and feel del sistema operativo en que se ejecute tu aplicación.

Para más info de Look and Feel en java consultar

Gracias por los comentarios

Desde ya muchas gracias por sus comentarios!!!!
Ahora tengo otra pregunta es posible por ejemplo crear un formulario o un gui en otro lenguaje (yo antes utilizaba XAML) y luego, implementar las funciones utilizando java. Porque con XAML puedo crear muy buenos gui con buen aspecto pero implementaba las funciones con C#, y la verdad, este ultimo tiempo me he encariñado mucho con java!!!!
Si alguien tiene alguna idea le agradecería que ayudara con este tema!!!!
Muchas gracias!!!!