Swing (Java) en Gnome

Buenas, estoy programando en java, pero en GNOME se ve feisimo SWING, demasiado horroso, las ventanas salen grises y los botones planos, algo asi como windows 3.11.

Sabeis porqué pasa esto?

Gracias.
Creo que sera cosa del look&feel, hace mucho que no toco java y las interficies graficas no son lo mio, pero creo que sera eso. Simplemente has de buscar un look&feel que te guste.

Aqui hay un par de ejemplos, muy feos, pero supongo que habra mas opcionesi:
http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial-LAF.html

saludos
Tengo que escribir tantisimas lineas para eso en TODOS mis programas? dos mio, yo flipo con java.

Y si tengo un programa de codigo cerrado en SWING y se ve feo? tengo que comermelo asi? :S

Un saludo.
Fox escribió:Tengo que escribir tantisimas lineas para eso en TODOS mis programas? dos mio, yo flipo con java.


Es solo añadir una linea lo del look&feel, la que esta en negrita, no veo yo que sean "tantisimas", y a mi las interficies en java me parecen un poco pesadas, pero es que no creo que haya un lenguaje en el que sean mucho mas faciles sin que sean mucho mas limitadas.

Fox escribió:Y si tengo un programa de codigo cerrado en SWING y se ve feo? tengo que comermelo asi? :S


Si, o te pensabas que esto del software libre y pedir codigo abierto era solo para tocar la moral porque la gente se aburre??.

Saludos
Hombre, alguna forma habrá de colocar un theme para java que sirva para todo ejeje.

Un saludo.
Si haber temas que se ven igual en todos los sistemas existen, de hecho creo que los de la pagina que te he pasado se ven igual siempre, aunque la verdad son bastante feos.

Lo que yo queria decir es que sin codigo fuente vas a sudar tinta para conseguir cambiar algo de un programa, si que se puede, pero lo que seria incluir una linea y volver a compilar pasa a ser casi imposible.

Saludos
Parece que hay una forma de tener un theme por defecto para todas las aplicaciones SWING, pero aun no he visto como hacerlo :S


Un saludo.
Una cosa, y como se hace para que el look&feel se mantenga, me explico si utilizamos uno distinto a lso tres predefinidos como hago que al trasportar el programa se mantenga??
Uhmm... ¿has probado entonces el snippet del enlace que te ha pasado egc_bcn?

Yo no lo veo tan largo... y creo que si para que tu programa se vea como quieres solo tienes que hacer eso, vale la pena.

No se, estoy acostumbrado a que las cosas se vean algo "marcianas" en todos los SO con JAVA... pero bueno, a mi me ha parecido una buena solución.

Saludos!
Pues resulta que me he equivocado, el look&feel se puede cambiar por linea de comandos, pero lo normal suele ser que si quieres realizar un cambio en un programa necesites el codigo fuente.

http://java.sun.com/docs/books/tutorial/uiswing/misc/plaf.html#dynamic

Me parece que si especificas un look & feel este se mantiene en medida de lo posible, no estan soportados todos en todas las plataformas, lo digo porque aqui pone un ejemplillo de lo que obtendriamos al buscar los look&feels instalados y el de macos solo esta soportado por macos (cosa bastante logica).

http://java.sun.com/developer/JDCTechTips/2004/tt0309.html

Y asi mirando un poco por encima la api parece que se pueden instalar look&feels y por lo tanto hacerte uno como te de la gana.

De todas maneras pasa un poquillo lo que dice Rurouni, se usa un loo&feel que se vea medianamente bien en todas las plataformas y ya esta, lo que pasa es que se suele ver extraño porque nunca es completamente identico. O se busca el del sistema que es el primer ejemplo del primer link que he pasado. Lo que pasa que en linux no se que tal funciona, no lo digo sea culpa de java o de linux, sino porque con el cacao que hay de escritorios no debe de ser facil controlarlo y habran usado un look&feel que de el pego pero es imposible acertar, por ejemplo en el xfce una aplicacion para kde se ve muy fea y se nota que no se le aplica el tema del sistema.

Saludos
Gracias por vuestras respuestas, pero en uno de los enlaces de egc_bcn dice esto:

Specifying the Look and Feel: swing.properties

Yet another way to specify the current look and feel is to use the swing.properties file to set the swing.defaultlaf property. This file is located in the lib directory of the Java release. For example, if you're using the Java interpreter in javaHomeDirectory\bin, then the swing.properties file (if it exists) is in javaHomeDirectory\lib. Here is an example of the contents of a swing.properties file:

# Swing properties

swing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel


Suena a poder tener un L&F por defecto para todas las aplicaciones swing que es lo que yo busco, pero no me va jeje.

Voy a seguir investigando, gracias.
10 respuestas