Righty, for various reasons that may or may not become obvious in the coming weeks and months, I have decided to dive into JavaFX. Of course, this will help with my weekly Swing links post, but that isn’t the main reason. I want a crash course. I will set aside this weekend, and I will learn what it takes. I want to focus on performant, correct, JavaFX. I don’t intend to cut a great deal of code right now – I’d rather learn what the building blocks of JavaFX are, and how they all fit together. Regardless, when it does come to cutting code, I’d prefer to use Eclipse as it is my environment of choice, but I think that it is likely I’ll be needing to get an appreciatin for NetBeans.
I’ll try to put up my own ‘mini-review’ of JavaFX next week sometime. You never know, I might be a convert 😛
If you have any recommended resources, please, let me know.
I’ll save my thoughts for another day, but just for people who subscribe to this blog, I thought I best get you the news: Sun has responded to the Swing 2.0 discussion here.
I’d love to hear your thoughts!
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!