Another week, another Swing links of the week, from now on known as Java Desktop links of the week to more properly encapsulate anything Java and GUI related. If you don’t like the new name, let me know what you’d rather have it known as! As always, send me your news if you have any. All my contact details are to the right. This week was relatively quiet on all fronts other than JavaFX, given the release of JavaFX 1.1. Anyway, on with the news.
- Ken Orr has announced the release of Mac Widgets for Java 0.9.4. You can check out the full list of enhancements and fixes, or just browse the API. Also, you can see examples that use these new widgets.
- Alex Ruiz announced the release of FEST-Reflect 1.1, a fluent interface based API for simplifying the usage of Java Reflection, resulting in improved readability and type safety. It supports class loading, access to static inner classes constructors, methods and fields, and more!
- Kirill Grouchnikov has been very busy, announcing new releases for his Substance look and feel project, his Flamingo components project (including Ribbon component) and the new release of an animation library called Trident, which evolved out of his work for Substance.
- Of course, as mentioned already, JavaFX 1.1 was released this week. The primary improvement in this release is support for mobile devices, but there are a number of changes that you’ll need to be aware of. Read the release notes for more details.
- Because of the changes, Stephen Chin posts about how to migrate your JavaFX applications from previous releases onto the latest 1.1 release. This document will be invaluable to JavaFX developers wondering how to migrate, so give it a read!
- An interview (by the Java Posse) with members of the JavaFX team has been posted on Parleys.com which was recorded at Devoxx. It’s a very good overview of JavaFX and lets you see the thinking behind it by some of the Sun developers.
- Jim Weaver has been very busy in the past week, posting twice about JavaFX bindings and KeyEvents. His first post gives examples for JavaFX 1.0, and then he subsequently updates the post for JavaFX 1.1.
- Yakov Fain posts about his impressions of JavaFX, and in the process builds a demo Pet Store application, complete with video demonstration, although I can’t see any mention of the code being available.
- A new part of the ‘Jump into JavaFX’ series has been released. In part 3, the focus is on the basic APIs. Previous parts focussed on setting up NetBeans and understanding the SDK, and a guide to scripting in JavaFX, from language fundamentals to data binding.
- Carl Dea posts about JavaFX sequences and predicates. His post is clear but very code-heavy, so for those of you that learn by reading code, dive right in!
- Piliq.com has an interesting blog in general for people interested in JavaFX. The posts mostly centre around discussions about physics in JavaFX, so if you’re interested in adding physics to your JavaFX demos/programs(?), please check out that blog.
Another week, another Swing links…..A fair bit happened this week, in both the Swing and JavaFX camps, so let’s get into the news:
- I started a Swing 2.0 discussion that garnered a huge amount of discussion (thanks to everyone!). It had the desired effect of capturing the attention of people at Sun – I have heard from a few internally that a response is due to be released this week. We’ll wait and see what they have to say – I’ll make a special post as soon as I find out.
- Jesse Wilson announced, after 2.5 years of development, that Glazed Lists has reached version 1.8.0. The release notes are also available for more detail.
- Kirill Grouchnikov announced new release candidates for both his Substance and Flamingo projects. These releases are now ready for use in Swing applications, and so if you’re keen to help Kirill out, give these projects a run through on your projects, and send feedback to the appropriate mailing list.
- Antonio Santiago wrote in his blog about how he has achieved mixing heavyweight and lightweight components in the latest early access release of Java 6 (update 12).
- Ken Orr posts a blog about drawing text around its visual centre. As per usual this post is very helpful, and I recommend anyone doing text layout in Swing (I would say most people) to give this article a read.
- The LimeWire blog has a discussion on the benefits of using MigLayout. It’s a very good introduction to the layout manager, and might be reason enough to many readers to switch to MigLayout for their next project.
- Rémy Rakic posts about his Scenile project which integrates scenario (the scenegraph powering the JavaFX runtime) with project nile (the JavaFX production suite). It loads fxd/fxz files and creates the appropriate scenario objects, fills the properties, creates the scenegraph and returns it to you. After that, its work is done and scenario takes over to render, animate, etc.
- Jasper Potts posts in his blog a video of Richard Bair and Martin Brehovsky presenting an hour long overview of JavaFX, including the JavaFX Language, Scene Graph and Animation.
- Stephen Chin posts in his blog a tutorial on using the Calendar widget (which comes as part of WidgetFX).
- Geertjan Wielenga posts an example of integrating JavaFX into the NetBeans platform. This example can be extended trivially to demonstrate how to integrate JavaFX into Java-based applications.
- Inyoung Cho and Cindy Church, in video form, describe the JavaFX Scene Graph and demonstrate how it is used by running a sample JavaFX application in NetBeans for JavaFX.
- After Yakov Fain posted that he intends to post code samples of JavaFX being used to create proper applications (instead of cute demos), Jim Weaver posts a demo of such an application built using JavaFX. Despite this, in my opinion Jim has not proven that JavaFX can be used to create proper applications – what I see in his demo is still a cute application that does in no way really resemble a traditional application. So, I’ll put out the call – can anyone create a JavaFX application that looks and feels like an enterprise application? I say enterprise because the last thing enterprise customers want in many circumstances is cute – they want consistency and visual integration with other applications.
- New comer to JavaFX blogging, Eric has put up two code-heavy blog posts. His first post is about perspective transforms with JavaFX. This post is taken a step further with the image being transformed by a drag handle bounded to a slider. His second post is about supporting drag and drop in JavaFX. His demo code allows for a user to drop a txt file into the view to render the text onscreen.
- James Britt, a developer on the Monkeybars project is interviewed about the release of version 1.0 of Monkeybars. To quote James, “Monkeybars is a JRuby MVC framework that sits on top of Swing. It doesn’t wrap Swing per se, but instead presents view logic (encapsulated in Swing classes) separate from controller and model logic (in Ruby). In that sense it exploits the freely available, high-quality WYSIWYG Swing UI design tools while freeing you to develop in Ruby”.
That’s it for another week! Hope you are keeping well, and for all you people on the other side of the world, I won’t remind you that here in New Zealand, the summer weather is lovely. Until next week – happy swinging 😛
Another week, another Swing links. Thanks to everyone sending me links – please keep it up! Also, at the end of this post I have a request for everyone to help me out, so please be sure to read it!
Here are some links regarding Swing and Java GUI’s you may have missed in the last week:
- Ken Orr at Exploding Pixels continues his series on skinning the scroll bar in Swing applications. This is part three, and whilst quite code-heavy, it shows how to plug into the Swing UI delegation framework via an extension of BasicScrollBarUI. For more context on this series, see parts one and two.
- Not content with one post, Ken Orr blogs about allowing one component to track the size of another component. His post includes easy to follow code that I recommend other Swing developers take a look at for future reference (if you haven’t already worked out how to do this).
- Kirill Grouchnikov blogs about improved support in his Substance L&F for very large fonts. He has screenshots which show his progress in this area.
- Wolfgang Zitzelsberger writes a blog post trying to clarify Z-ordering of components when painting in Swing.
- Elliot Hughes has a blog post explaining how to bind an action (such as pressing the enter key) to a JList. This is very useful, as there are a number of ways to do it, but this way seems the best and cleanest.
- Swing-FX blog has updated the fake application that has been a feature of a number of blog posts recently. This application is Swing-based with a focus on usability and design. In this update, a number of new components have been integrated, including color choosers, tag clouds, star ratings, ‘customize toolbars‘, etc. The source code is on display, as well as a downloadable project to get all source code.
- Lobo Browser 0.98.4 has been announced. The major news of this release is that it updates Lobo’s support of direct rendering of JavaFX source code, such that it is up to date with JavaFX 1.0.
- In other web browser related news, the Chrome Browser for Java (CB4J) has been announced. This is planned to be available for both Swing and SWT, and as stated on the linked post, “the licensing model of CB4J has not been fully defined, we are considering an open source version of CB4J as well as a low-cost, advanced version”.
- Charles Humble wrote in to let me know that he has an interview with Stephen Chin regarding WidgetFX. I mentioned WidgetFX in last weeks post, but this is another interview, and is a little more in-depth.
- Announced this week is that jSilhouette has joined the JFXtras project. The JFXtras project is an open effort to fill in the gaps in the current JavaFX library, whereas jSilhouette provides a collection of Java2D shapes that can be used in several modes, and now that it is part of JFXtras, these shapes can also be used in JavaFX. To allow for this immediately, both projects announced new releases.
- Swing links regular Alex Ruiz made a number of announcements regarding his FEST Java library that provides a fluent interface for functional Swing GUI testing. These include a post on how to test drag and drop in JavaFX using FEST, as well as announcements that the FEST developer team is growing.
- Jasper Potts has posted a blog discussing how he made the video for Devoxx/Parleys.com using JavaFX. This post is a good tutorial to anyone wanting to get an understanding of animation in JavaFX, with a lot of code, diagrams, and a Java Web Start link.
- Osvaldo Pinali Doederlein has posted his first impressions of working with JavaFX, in terms of the language, and the performance of programs written in JavaFX. He writes JavaFX Balls: the JavaFX version of the Bubblemark RIA benchmark, and makes available all related source code.
- Coming in just before I posted this weeks Swing links, Jim WeaverDean Iverson posted about how to do spotlight effects in JavaFX. As usual, he has included a lot of code samples.
That’s it for another week. Three weeks down, who knows how many more to go! Now that you have an idea of how Swing links is working under my direction, I’d love to hear your thoughts. Am I being too thorough, or not thorough enough? Do I include all the posts you’ve come across, or do I post too many links? Is my analysis too long or too short? I’d love your thoughts, as it’ll let me refine things.
Thanks, and have a great week!
Here are some Java GUI-related news items you may have missed in the last week…I hope you enjoy them. If you think I missed anything, let me know in the comments. Have a great week!
- Firstly a post I missed last week: Jacek Furmankiewicz has announced the availability of the Swing JavaBuilder PDF book that aims to provide a more thorough documentation of the project’s goals and features.
- Kirill Grouchnikov continues improving his flamingo JRibbon and substance projects, bringing the flamingo look and feel much closer to that of Office 2007. Behind the scenes on the mailing lists he and Andrey Eremchenko have been working very hard to bring the experience of JRibbon much more closer to Office 2007’s ribbon.
- Alex Ruiz continues his series on testing JavaFX UIs. This is part four, with the previous three available here (parts 1, 2, 3). This post focuses on automating the build process of a combined Java and JavaFX project using Maven.
- Speaking of Alex Ruiz, he has just announced the avilability of the FEST-Swing 1.0 release. FEST-Swing is a Java library that provides a fluent interface for functional Swing GUI testing. This library provides an easy-to-use API that makes creation and maintenance of GUI tests easy.
- James Sugrue interviews Stephen Chin about his WidgetFX project. WidgetFX is a desktop widget platform written in the JavaFX Script language. It can run widgets written in either JavaFX Script or Java.
- Ken Orr at Exploding Pixels writes about how he managed to write an image to disk, accessing it through the Mac OS NSImage:// protocol.
- Jim Crossley looks at the improvements made to Java Applets in Java 6 Update 10. Yes, I know this is old news, but I thought that this summary was pretty good, and provides a good amount of justification for anyone lingering on older releases to upgrade.
- Jasper Potts has posted a link to his JavaOne 2008 talk about the Nimbus look and feel. I have yet to use Nimbus in any of my Java projects, instead preferring to maintain the look and feel of the current users operating system. This has always been something that has confused me a little – how popular are the custom Sun developed look and feels such as Metal and Nimbus? Is it the best use of engineering resources?
- Are you interested in learning more about JavaFX? If so, Jim Weaver and Sang Shin are running a free ‘15-Week JavaFX Programming (with Passion!)’ online course.
- Jean-Francois Poilpret posts about best practices when doing layouts in Swing. This blog post does tend to focus on his DesignGridLayout layout manager, but even if you aren’t using it there are a number of good tips in this post that I recommend all UI designers/developers to follow in their own projects.
- With the availability of LGPL licensing being announced this week for QT, there is some discussion that Java may have just got a brand new components framework, accessible through QT-Jambi. Joe Walnes blog post was the first I saw discussing this. I definitely recommend giving the webstart link a try – it is actually quite impressive, although I’m not 100% certain of QT-Jambi’s licensing plans.
- Finally, all developers: heed this advice.
That’s it for Swing links this week, I hope you enjoyed it. If you have any links I missed or feedback (both positive and negative), please leave a comment or send me an email. Cheers!
Given that I am heavily engaged in the development of Java Swing-based applications, and the recent ‘freezing’ of Kirill’s blog posts regarding popular Swing news, I thought I would try my best to pick up the slack.
I think it is probably worthwhile that I quickly state that my interests are primarily in Swing, so I am not overly up with the play in other areas that Kirill frequently blogged about, such as JavaFX and Groovy. Regardless, I will try my best, and if you have any news, please post it to me at email@example.com. Without any further ado, here are some Swing links you might have missed in the past week:
- A few years ago the Swing team made Aerith, which demoed various cool things that could be done with Swing. This week the Aerith Netbeans project was announced by Julian Gamble. This project strips out the major components of Aerith, and makes them available to all Swing developers. There is also a number of videos which introduce you to this project.
- Jean-Francois Poilpret has announced the RC1 release of DesignGridLayout. Any new layout to the Swing world is generally much appreciated, given the lack of development of new layouts since Swing was first developed. I should also link to JGoodies Forms layout (which I use heavily), and MiG Layout (which I have yet to use).
- Speaking of layouts, Amy Fowler has posted a blog post about layouts for JavaFX.
- Alex Ruiz continues his blog series on testing JavaFX user interfaces with part 3 (part 1 and part 2 are also available). The testing is accomplished using his FEST Swing DSL-oriented Swing testing library.
- Osvaldo Pinali Doederlein has posted a blog post attempting to clarify JavaFX FUD that exists. I think he clarifies that Swing and JavaFX, whilst competing in some senses, have different focuses also – JavaFX can be far more lightweight, allowing for it to be used in mobile devices far more readily than Swing will ever be.
- And finally, everyones favourite blogger Joel Spolsky posted a blog about the wordy Java installation process. I agree that there is a job for someone within Sun to run through all these dialogs and try to simplify and clarify the message that Sun portrays to the outside world.