2011-11-02 24 views
11

Me gustaría saber si hay algún proyecto desarrollado en Java para aprender las mejores prácticas de Swing. Me refiero a un proyecto de código abierto alojado en Internet a través de SVN o similar. He estado leyendo algunas preguntas en Stackoverflow sobre este tema, pero vería algunos proyectos. Gracias.Un buen proyecto de Swing para aprender las mejores prácticas

Respuesta

8

La forma en que aprendí las mejores prácticas de Swing fue leyendo el código fuente de Swing en el JDK y la práctica. Sigue las prácticas de Sun y estarás en el camino correcto.

Lea las implementaciones de JTable, JTree, JScrollPane, los diversos LookAndFeels, SwingWorker, SwingUtilities. Su manejo de eventos y patrones MVC son extremadamente complejos pero muy legibles, mantenibles y extensibles. Essentailly, cada vez que use un componente, lea el código fuente y entienda qué y por qué lo hace. Eventualmente, comenzarás a hacer lo mismo.

Y lo más importante, código. Escriba algunos programas grandes, y comenzará a ver cosas que no parecen correctas u óptimas. Acércate a Stack y descubre qué estás haciendo mal o podría hacerlo mejor. Escribe algo más y haz lo mismo.

Dicho esto, los siguientes proyectos (o probablemente) un buen código:

SwingX - Los mantenedores de SwingX había gente Sun/ex-Sun, y siempre he pensado en él como incubadora no oficial para el futuro Características de swing

Squirrel (Un cliente JDBC) - No he visto su fuente, pero he usado el programa durante años y no muestra ninguno de los defectos comunes en programas Swing mal escritos. Con lo poderoso que es, y lo bien que funciona, pondría el dinero que está muy bien escrito.

InfoNode (Un potente marco de acoplamiento) - He pasado bastante de su código, y es bastante sólido.

JFreeChart (Una poderosa biblioteca de gráficos) - No es el mejor código, pero mucho mejor que el promedio, especialmente teniendo en cuenta que es un proyecto antiguo que nunca fue diseñado para hacer todo lo que la gente lo usa. Dicho esto, es muy extensible y nunca he tenido problemas para adaptarlo a mis necesidades (que son mucho, mucho más que sus intenciones originales).

GlazedLists (Una biblioteca de listas basada en eventos de alto rendimiento) - No exactamente Swing, pero su manejo de eventos es similar a Swing. También tienen implementaciones de modelos Swing y algunos componentes personalizados que son extremadamente rápidos.

JIDE Common Layer: una colección masiva de componentes personalizados que sirve de base para sus componentes comerciales. No he revisado su código, pero sus componentes son hermosos, y dado que su enfoque principal son los componentes Swing comerciales, una vez más, les diría que su código es sólido.

3

Me pareció muy interesante ver una aplicación de calidad profesional escrita en Swing, como IntelliJ IDEA Community Edition. Ahora que es de fuente abierta, puedes consultar el código y comenzar a indagar. Sin embargo, sé prevenido, ¡no hay comentarios!

Cuestiones relacionadas