Is there a good framework for Java desktop applications?

user1091733 picture user1091733 · Jan 19, 2013 · Viewed 48.6k times · Source

I have developed many desktop applications in Swing, even those a bit more complex, with Hibernate and Spring integration. I found out that many things repeats and should be done quickly and in convenient way, like application lifecycle, logging, alerts, authorisation, forms and their validation. I started looking for frameworks. I met Swing Application Framework which is dead since several years, as it turned out. Spring RCP really met with my expectations, especially creating forms basing on Java Bean model is what I liked, but I realised it is dead too. Netbeans RCP is not for me, I am using Eclipse and I don't want to use another IDE for desktop development. I am not really excited about Eclipse RCP, I got feeling that it is too Eclipse oriented, I would prefer something low coupled to any tool, besides it is not so straightforward to learn.

I am surprised that there is so weak support for developing desktop-based business applications in Java. It's like Java was only used in web environment. What is the preferred language for making such apps then? And if I want to stay with Java, is there a chance to find something similar to Spring RCP (so far I couldn't)?

Answer

Jayan picture Jayan · Jan 19, 2013

Please try griffon. This is based on groovy language and inspired by grails framework. It runs on JVM, language is very much friendly for java programmers.

Quote from the site

Griffon is an application framework for developing desktop applications in the JVM, with Groovy being the primary language of choice. Inspired by Grails, Griffon follows the Convention over Configuration paradigm, paired with an intuitive MVC architecture and a command line interface.

.... The architecture is very much extensible.

The Griffon framework is extensible via Plugins. There are many to choose from. For example you'll find plugins for 3rd party Swing components like Swingx, Jide and Macwidgets; persistence related plugins like DataSource, GSQL, Hibernate among others; 3D graphics and animation support is possible via JOGL, LWJGL and Processing. And many more!