Find Time for Java and more!

13 June, 2008

Java Swing Frameworks and Libraries

Filed under: Java, News, springrc — karussell @ 21:32

Today I am looking around which library or framework could make my life easier while developing with Swing.

For Swing I need nice components, dialogs, wizards, background threads, etc.

In additation to this I will need ‘easy’ logging, ‘easy’ translation, beans binding and so on. The final requirements are not fixed at the moment so I will take just a survey ;-)

So whats the difference between an ordenary ‘libray’ and the hip ‘framework’?

I think the main difference between a framework and a library is, that you have to call the libraries methods directly from code. Swing itself is a framework, so it calls your methods; e.g. your ActionListener’s listen to an action from Swing and will be called from Swing. That means a framework uses the hollywood principle or sometimes called dependency injection.

Let me start with the ‘EierlegendeWollmilchsäue’ (the more bigger frameworks):

  • Spring richclient (Apache License 2.0). Actions, bars and more via spring beans, data binding and validation, view management, dialogs, wizards, progress bars, simple I18N etc. Start with the documentation there or here.
  • OpenSwing Framework: a lot of components, beans binding, ORM classes, spring integration, authorization management, logging, translation. See here for more information.
  • The dev.java.net bundle; namely: Swing Application Framework and Beans Binding (LGPL). The AppFramework is currently not active, but nevertheless it offers some nice features.
  • Genuine (LGPL) is a client framework for Java Swing applications for which it provides basic infrastructure.

There are some smaller, but very nice libraries and frameworks:

Do you know other free libraries or frameworks, which could be useful for Swing development?

15 Comments »

  1. GUI Commands is cool lightweight action manager.
    http://pietschy.org/software/gui-commands/index.html

    GlazedLists is integrated in Spring RCP, but is also useful on its own
    http://publicobject.com/glazedlists/

    MiG layout is an evolutionary improvement of JGoodies layout, allowing alignment of components belonging to different panels.
    http://www.miglayout.com/

    Jide Common Layer contains high quality components and utilities, open-sourced from their superb commercial product.
    https://jide-oss.dev.java.net/

    Comment by Dimitar Dimitrov — 15 June, 2008 @ 13:56 | Reply

  2. VFSJFileChooser(http://vfsjfilechooser.sourceforge.net/index.html) is a Java Swing Component which allows you to browse both remote and local filesystems.

    Comment by Frank Dasilva — 15 June, 2008 @ 14:13 | Reply

  3. [...] Java Swing Frameworks and Libraries Today I am looking around which library or framework could make my life easier while developing with Swing. For Swing I [...] [...]

    Pingback by Top Posts « WordPress.com — 16 June, 2008 @ 00:06 | Reply

  4. Java Swing Frameworks and Libraries « Java and more ……

    Java Swing Frameworks and Libraries « Java and more ……

    Trackback by roScripts - Webmaster resources and websites — 16 June, 2008 @ 02:15 | Reply

  5. May I mention the Tentackle framework for Swing-based n-tier enterprise applications:
    http://www.tentackle.org

    Comment by Harald — 16 June, 2008 @ 07:38 | Reply

  6. @Dimitar What components are in the jide common layer? Could you explain your favourites? And is GUI Commands similar to the spring rich clients commands? Or even the same?
    @Frank Is it possible with your file chooser component to set the details view as the standard view? (Because this is what I failed to do for the JFileChooser)
    @Harald Thanks a lot for this information! Could you please describe the differences to e.g. the spring rich client project?

    Comment by Peter — 16 June, 2008 @ 09:27 | Reply

  7. Hi Peter! Compared to other frameworks (like Spring RCP) Tentackle is — what I call — a “top-down” framework. It’s much more like Rails is for Ruby than Spring is for Java. In fact, you’ll find many concepts and ideas of Rails in Tentackle (although it’s older). The way of thinking is pretty much the same: getting things done! There is a tutorial covering most of Tentackle’s goodies:
    http://www.tentackle.org/html/en/tutorial.html

    Comment by Harald — 17 June, 2008 @ 18:27 | Reply

  8. Hi Harald!

    I never thried Rails, although I should. But I took a quick look at tentackle: It seems to be well integrated into NetBeans – thats a great news for me :-) .
    But does tentackle supports me to use JPA or JDO for the persistence layer? (I will tell you later what one can do with spring rich client…)
    And what about docking framework, is there any?
    And let me ask a last question about security: Is it really secure? I mean, you achieve the security on application level, right? Does this mean, if I would have an open source app, someone could come, change the methods, compiles it and then has access to all the stuff he wants?? Or did you mean application level on the server side?

    Comment by Peter — 17 June, 2008 @ 18:53 | Reply

  9. Hi Peter! Indeed, Netbeans provides a few nice features. Most important for Tentackle are the guarded blocks to lock generated code. Concerning the persistence layer: Tentackle provides its own layer based on the active record pattern (quite similar to Rails). As a consequence, using POJO-based persistence frameworks doesn’t make much sense. AR is a completely different approach and much more lightweight than POJO.
    There are pros and cons for either approach, but that’s a separate discussion ;)
    Security: the rules apply to the client _and_ the server! It won’t help to tweak the client in order to bypass security. As transactions run in the server, the server will enforce the security.
    However, you can implement additional rules in the client. For example, consider master data like currencies. All users must be able to work with currencies (hence, they need server-side read access), but only a few users should be able to view the attributes for each currency in a certain panel.
    Docking: there is no special support in Tentackle. However, it’s not rocket science to integrate with some RCP platform. Although I wouldn’t do so, because of Tentackle’s outstanding small footprint. You just need tentackle.jar (1.5 megs) and the JRE. That’s it. I personally don’t like architectures you have to throw a whopping 100 megs of jars at to get your app running ;)

    Comment by Harald — 18 June, 2008 @ 08:13 | Reply

  10. I found some other frameworks:
    http://xui.sourceforge.net
    http://sourceforge.net/projects/pendulum/

    Please look at the summarization of this blog entry:
    http://lopeathal.wikispaces.com/Open+Source+Desktop+Libraries

    Comment by Peter — 22 June, 2008 @ 12:06 | Reply

  11. Hi Peter,

    GUI Commands was used as the basis for Spring RCPs command framework.

    Cheers
    Andrew

    Comment by Andrew — 23 September, 2008 @ 09:41 | Reply

  12. Found another interesting library: http://code.google.com/p/jsyntaxpane/, apache 2 license, 124 KB

    Comment by karussell — 13 November, 2008 @ 20:34 | Reply

  13. Some new thing in java programming world: Domain Driven frameworks.
    http://www.javaneverdie.com/java-frameworks/java-domain-driven-frameworks-review/

    Comment by waywalker1 — 6 August, 2009 @ 21:33 | Reply

  14. Thanks for the link!!
    I blogged too about those frameworks, please see
    http://karussell.wordpress.com/?s=metaframework

    Comment by karussell — 9 August, 2009 @ 11:46 | Reply

  15. [...] Filed under: Eclipse, Java, NetBeans, Swing, Web2.0, springrc — karussell @ 11:07 In an old post I listed all Java libraries,where only two application frameworks were [...]

    Pingback by Java Application Frameworks (not only client side …) « Find Time for Java and more! — 8 October, 2009 @ 11:08 | Reply


RSS feed for comments on this post. TrackBack URI

Leave a comment

Blog at WordPress.com.