Here are your Java desktop links of the week. It’s been an interesting week to be a Java developer, given the rumours swirling around a potential acquisition of Sun as soon as this week. Who knows, next weeks post might be SWT links of the week 😉
Regardless of what happens, have a great week, and don’t work too hard.
- The ‘learn ‘ page on JavaFX.com is being frequently updated, as alluded to by this blog post, which includes links to a number of tech tips for JavaFX programmers of all skill levels .
- Sergey Malenkov posts an interesting revelation when calling certain Java code from JavaFX . In particular, JavaFX has a number of keywords that are not in Java, such as ‘insert’, ‘delete’, etc. Because these are keywords, you can not call a method such as obj.delete(), without first wrapping the delete method call with << and >>, for example: obj.<<delete>>(). I hope that sooner (rather than later) this can be resolved – the JavaFX compiler surely should be able to discern between the two use cases and remove the need for this.
- Josh Marinacci (@joshmarinacci ) posts the winners of the first JavaFX micro-challenge . Not surprisingly, the 3 prizes went to the 3 entrants.
- Jeff Frieson posts how to create a skinnable button in JavaFX .
- JavaFX.com has a tutorial on how to create a media player in JavaFX .
- DevX.com has an article on how to get started with creating JavaFX applications for mobile devices .
- Jim Weaver (@javaFXpert ) posted another JavaFX puzzler , as well as his recommended solution to the puzzler . This puzzler focuses on animation in JavaFX.
Here we go again! A huge number of links this week, but plenty of interesting news, so be sure to check it all out! Thanks to everyone in the community for creating all the news! 🙂 If there is anything you want me to include, email me or contact me on twitter – my contact details are to the right.
- Jan Haderka has announced that SwingX 0.9.6 has been released , which should be the last release before the 1.0 release. There are a number of bug fixes and code cleanups in this release, and even includes my first contribution to the project 🙂 If you are not using SwingX , I seriously recommend that you explore the various components offered by the project.
- JavaFX 1.1.1 has been released, prompting many to believe that the JavaFX versioning scheme is based on binary arithmetic. Despite this, Danny Coward has posted a quick summary with all the relevant links .
- Drew posts about his thoughts on JavaFX, and whether it is right for you .
- Wanting to do 3D in JavaFX? Following on from last weeks link, I have a direct link to the people behind the code . On their site is a few demos that you can run as webstart applications/applets.
- Richard Bair posts to show how he formats his JavaFX code . This is an odd discussion to have, but given how new the language is, best practises have yet to be worked out.
- JavaWorld has a tutorial on how to use a Swing spinner component in JavaFX . Following this tutorial, you should understand how to use other Swing components in JavaFX.
- Having never used db4o , I can’t offer much insight to the next post. However, according to the db4o developers, JavaFX plays nicely with it, allowing for <insert whatever db4o does> to work .
- James Connell posts about how he made a JavaFX game using the JavaFX production suite . I haven’t had a chance to read this indepth yet, but he appears to go into a lot of detail that’ll no doubt be invaluable to other JavaFX developers/designers.
- James Weaver , as per usual, has been busy promoting JavaFX. He has a puzzler for people to try to develop (solutions are in the comments) and a link to a very sad looking JavaFX petstore demo (at least align the components!).
That’s it – have a great week everyone!
There is a huge number of links this week, so let’s get straight into it.
- The Limewire blog has a post about creating floating panels using the MigLayout .
- A number of people got in touch with me regarding the Chartle project , which allows for charts to be created using a webapp. The user interface is partially built using Swing.
- James Strachan (@jstrachan ) posts that he met James Gosling , and in the course of the discussion James Gosling notes that he is very keen to get JWebPane into the JDK.
- A few weeks back, Željko got in touch with me regarding his Swing project , Revolucion Library , which is an awesome looking media player for Java. He has clearly put a lot of effort into it, and is now sharing with you some of the tricks he learnt. He has two posts, one about the cover gallery he created , and the other about creating a Java-based YouTube video player .
- I was contacted earlier this week by Tim Mouradian regarding his software My Money , which is a commercial project but built entirely using Swing.
- Kirill Grouchnikov (@kirillcool ) has created a new skin for his Substance look and feel project, called Dust .
- In addition to the skin, Kirill has also posted Amber, an application which analyses social trends in various networks (Digg, Twitter, etc), and animates the information using his Trident animation library mentioned last week. This is only very weakly related to Swing, but you should definitely check it out.
- Finally, just before this post went out, Kirill announced he has done a mini-review of the latest release of Woopra client , which is a web analytics tool. Kirill’s mini-review, as with any UI enthusiast, focuses on the polish that this application has in its user interface.
- It’s competition time! Joshua Marinacci (@joshmarinacci ), with the backing of Sun, has announced two JavaFX competitions . There are cash prizes, ranging for $1000 up to $25,000, as well as advanced copies of JavaFX books. Stop reading this post and get coding! 🙂
- Ken Orr , never failing to impress, has created a simple JavaFX tray component , which oozes polish.
- Rakesh Menon posts about lighting effects in JavaFX , and has a simple webstart application to let you play with various effects.
- Rakesh , busy as usual, also poses the rhetorical question ‘can JavaFX speak my language’, and then proceeds to answer this by showing how you can get JavaFX to show custom fonts .
- Sergey Malenkov has posted a JavaFX-based fullscreen application that mimics the sidebars offered by Microsoft, Google, etc.
- Jim Conner posts about bindstorming , that is, the issue with using too much binding in a JavaFX script application. He also highlights how it is possible to reduce the use of binding, whilst still retaining the same end result.
- Ravi Dharnikota , on the JavaFX blog, shows how to improve the startup performance of your webstarted JavaFX application .
- Eric posts a JavaFX Bubble Breaker game , including code and a webstart link .
- Jim Weaver posts about including Java3D in your JavaFX application .
- Somewhere I come across the memefx JavaFX controls project . Just a pointer, if you’re going to watch the YouTube video on that page, mute the audio.
That’s it for another Java Desktop links of the week. I have kept the details of each item shorter given the number of links – I hope that is alright with everyone! Have a great week, and keep up the good work progressing the Java desktop!
Given the lack of news related to Swing recently, I think it’s getting to the point where I think another rename of this series is in order, this time to JavaFX links of the week 😉 Regardless, on with the news:
General GUI News:
- The JavaOne 2009 sessions have been allocated and announced. You can search the sessions here . More information about JavaOne is available on Suns JavaOne website . Whoever is sending me my plane and conference tickets is leaving it very late 🙂
- Kirill Grouchnikov (@kirillcool ) continues with his Trident animation library . This library does not necessarily animate Swing components, hence it being included in general GUI news. In general, Trident is a high-performance timeline framework, allowing for large numbers of interrelated timelines to be created.
- Surgey Surikov started a discussion about ‘what JavaFX examples do developers want ‘, based on feedback given to this question, which was originally asked by Josh Marinacci (@joshmarinacci ). Make sure to read the comments for further discussion and analysis of the results.
- In a post titled ‘what does JavaFX mean for you ‘, James Sugrue attempts to clarify JavaFX’s place in the Java ecosystem. Once again, read the discussion comments at the end.
- Continuing on with the series, Michael Heinrichs has posted part 5 of his best practices for JavaFX mobile applications . There are three tips included in this post, which are:’define variables with def instead of var. Make them script-private’, ‘use Integer instead of Number’ and ‘use functions of class Sequences’.
- Markus Kohler (@kohlerm ) has a post about some high numbers related to JavaFX memory usage .
- As always, JFXStudio (here ) has a number of interesting examples, but the most interesting one for me is tareitasfx’s post about a JavaFX collapsible pane , with a webstart link .
- Rakesh Menon posts about a Sudoku game he has developed in JavaFX . Most interesting is his use of CSS to easily skin the game. Webstart the game here .
- Rakesh Menon also has a post about the BlendMode effect in JavaFX . This effect merges two nodes (such as images) in various ways, depending on the effect chosen. There is a webstart link as well .
This week there is a rather large amount of JavaFX news, but very little Swing news. I guess this is a sign of the times 🙂
- Coming into my feed reader after posting this blog, I thought I’d quickly add that Ken Orr has a blog post about creating a custom HUD-style combo box.
- Alexander Potochkin has blogged that the Swing Application Framework is back again. For more background, check out this interview with Hans Muller, back when the project was first approved. SAF has had a turbulent life, most recently with Karsten Lentzsch disapproving of its current state, and whether or not it actually will make it into Java 7 is yet to be seen.
- InformIT has a post discussing playing media in Java using JMC. All code samples are written in Java, not JavaFX Script.
- Regarding Swing 2.0, in the 13/02/09 podcast of This Ain’t Your Dad’s Java!, Sun’s Java marketing team has briefly discussed the recent discussion around Swing 2.0. You can listen to the podcast here if you have iTunes (skip forward to around the 5:00 mark. It continues until around the 9:15 minute mark). Their general perspective was that people wanting Swing 2.0 are trolling, whiney and fanboys. Also, despite their protests that Swing is strong, they inferred a number of times that Swing is on its way out. I found their means of communication to be somewhat condescending and rude, but perhaps that’s just me. For marketing people who are putting out the opinion of Sun, I found this to be disappointing.
- Michael Heinrichs continues his best practices for JavaFX mobile applications with part 4. This post has two tips: use the prescaling functionality and use background loading. I referred to the previous three parts in last weeks post, but for quick references, here they are again: parts 1, 2 and 3.
- Sergey Malenkov has a small code sample of how to use text reflection to add the overused reflection effect to a digital clock. My advice, use reflection with caution, and the simplicity of adding reflection scares me – JavaFX GUIs presently look like toys without the need for over the top reflection!
- Osvaldo Pinali blogs about his improvements to JavaFX Balls, which implements the Bubblemark animation test. He has managed to port it to work on mobile devices, and whilst he has published a webstart demo, the link isn’t presently working.
- Simon Brocklehurst has a blog post titled ‘JavaFX eats its own dogfood‘ that talks about a simple application that lets you manipulate rectangles, and see the resulting JavaFX code. There is a webstart link that you can use to run it.
- There is a brief overview of how JavaFX handles (or ignores) NullPointerExceptions. Despite his requests for a discussion, there doesn’t appear to be any comments.
- Jan Erik Paulsen has an opinion piece on JavaFX, claiming that Sun is pulling a ‘Netscape rewrite’ with JavaFX.
- Per Bothner has two posts about writing a read-eval-print loop in JavaFX. A REPL (also called a command shell) allows you to type in expressions, have them be immediately evaluated, and the result displayed. This is very useful for experimenting with or learning a language.
- Johan has a post about creating a JavaFX asynchronous chat client.
- As always, Josh Marinacci (@joshmarinacci) is keen that you check out JFXStudio for lots of cool JavaFX samples.