2010-04-11 5 views
21

Hasta ahora solo he creado aplicaciones gráficas "pequeñas", usando swing y JComponents como aprendí en la escuela. Sin embargo, ya no puedo soportar los feos JButtons. Intenté jugar con los diferentes métodos de JButton, como cambiar colores, poner iconos, etc., pero aún no estoy satisfecho. ¿Cómo se hace una interfaz gráfica de usuario más agradable en Java?Estoy cansado de JButtons, ¿cómo puedo hacer una GUI más agradable en Java?

Estoy buscando alternativas no demasiado pesadas (como, sin grandes marcos o bibliotecas demasiado complicadas).

+0

http://stackoverflow.com/questions/2248342/skinning-java-applications/2248437#2248437 – Jonas

+0

@Jules Olléon: +1 Tenga en cuenta que en algunos casos donde necesitaba algún componente inexistente (como, por ejemplo, un "Barra de progreso doble/tri/cuádruple" [diferentes colores en la misma "barra de progreso"]) y quería que se viera * exactamente * lo mismo en Linux, Windows y OS XI se tomó la molestia de escribir mi propio, ligero, self- hecho, componente basado en píxeles. No es diferente a escribir GUI 2D para juegos (menús, etc.). Por cierto, es poco probable que todas las sugerencias sobre cambiar el diseño predeterminado den resultados aceptables en OS X: desea asegurarse * de * aplicar, use estas L & F cuando no esté en OS X;) – SyntaxT3rr0r

+0

@Jules Olléon: También tenga en cuenta que la segunda razón por la que no desea utilizar estos L & F en OS X es que hacerlo podría romper las pautas de Apple (de manera predeterminada, sin interferir con nada, Java JButton * se ve muy bien en OS X). – SyntaxT3rr0r

Respuesta

18

Swing admite cambiar la apariencia & feel.

This tutorial explica cómo:

UIManager.setLookAndFeel(lookAndFeelClassName); 

Otra forma es comenzar su aplicación con el L & F:

java -Dswing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel MyApp 

Here es una lista de 10 aspecto muy agradable y se siente.

+0

¡Gracias, esa es una manera muy fácil de darle un aspecto nuevo a mis GUI! –

+1

+1 para la lista, voy a proxenetas algunas aplicaciones oscuras antiguas, gracias – stacker

1

Es posible que desee intentar JavaFX. A pesar de todos sus problemas, me parece que si quieres poner una interfaz decente (preetier que Swing) sobre tu aplicación Java, es bastante fácil de hacer. Además de una buena integración de Java. Puede implementar interfaces Java en JavaFX y viceversa.

+0

Tu enlace se rompe con un redireccionamiento suave de 404 a la página de inicio de Java – Ferrybig

1

Este article muestra cómo extender JButton y sobreescribir los métodos para pintar el componente.

5

¿Has probado al menos con nimbus look'n'feel? que es un poco mejor que los otros ..

UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); 

único inconveniente es que requiere al menos actualización java6 10.

+0

¡De hecho, es una apariencia genial, gracias! –

6

estoy usando SWT. Pruébalo, es realmente muy lindo marco de java gui, el eclipse está construido alrededor de él. También puede usar este complemento para eclipse para crear sus formularios Instantiations.

+0

SWT se comporta un poco diferente según el sistema operativo. En Mac OS X, algunos accesos directos de teclado para navegar por las listas no parecen funcionar y en Linux tuve algunos problemas con las dependencias de la biblioteca de respaldo (C). Es solo más dependiente del sistema operativo que Swing, por lo que una aplicación que lo utilice necesita más pruebas. – extraneon

+0

La principal objeción a esta respuesta para * esta * pregunta es que implica un cambio de conjunto de herramientas, que es demasiado pesado para el interrogador. De lo contrario, una buena idea. –

+1

Tiene razón, este es el principal problema con el que depende el sistema operativo. Pero en caso de que esté buscando una interfaz gráfica de usuario muy atractiva y realmente rápida en Java, elegiría SWT. Las mejores universidades comienzan la educación de GUI presionando SWT. – Roman

2

A nuestro gerente de proyecto tampoco le gustan los JButtons y en su lugar estamos usando los botones JIDE OSS (y un montón de otros componentes JIDE). SwingX también ofrece una alternativa: JXButton. IMO estas son las dos bibliotecas externas más valiosas de Swing.

1

Lo más fácil es quedarse con Swing y usar un aspecto y una sensación diferente.

lo que puede hacerse fácilmente se muestra en http://www.jgoodies.com/freeware/metamorphosis/index.html (Utilice esta this web start link a verlo en acción)

Cualquiera de distribuir una L & F con su programa, o elegir uno de los incorporada. Me gusta Nimbus pero debe estar explícitamente seleccionado en su código.

4
try 
{ 
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
} catch(Exception e) 
{} 
0

Si usted es un poco en el diseño gráfico, es posible que desee considerar la creación de su propio diseño con Synth, que es parte del estándar JRE. Si no desea crear el suyo, busque en Google los temas existentes que pueda usar.

Las alternativas a Synth son Synthetica (gratis para uso personal, no comercial) o Substance ("gratis" como en "Licencia BSD").

-2

Sería bueno si Java tuviera una herramienta similar a Interface Builder (la herramienta de desarrollo de GUI que viene con Xcode), el mejor desarrollador de IU que he visto.

Cuestiones relacionadas