FX Experience Has Gone Read-Only

I've been maintaining FX Experience for a really long time now, and I love hearing from people who enjoy my weekly links roundup. One thing I've noticed recently is that maintaining two sites (FX Experience and JonathanGiles.net) takes more time than ideal, and splits the audience up. Therefore, FX Experience will become read-only for new blog posts, but weekly posts will continue to be published on JonathanGiles.net. If you follow @FXExperience on Twitter, I suggest you also follow @JonathanGiles. This is not the end - just a consolidation of my online presence to make my life a little easier!

tl;dr: Follow me on Twitter and check for the latest news on JonathanGiles.net.

Creating Custom Caspian Skins

Creating Custom Caspian Skins

Dean Iverson has just now blogged about creating custom Caspian controls in JavaFX. As soon as I saw his link run up on Twitter I fired it around my team mates in the JavaFX controls team (yes, we’re still working, and in fact we’re all working precisely on what Dean is talking about). We all like what he is doing, and with JavaFX 1.3 coming up we hope to make this kind of thing far easier.

CaspianColors

From Deans blog post:

Creating custom controls in JavaFX is not difficult. Creating custom controls that fit nicely with the default Caspian theme, with its pervasive use of gradients and animation, is a little trickier. This is only because the utility classes and methods that make it simple lie buried within com.sun packages that are not publicly documented. A little digging reveals a few gems that can be used to make your controls fit right in with the core JavaFX controls.

So, if you’re keen right now to create great looking skins in JavaFX using the Caspian technology that shipped in JavaFX 1.2, give Deans blog post a read.

JavaFX links of the week, December 14

Welcome back to JavaFX links of the week. There have been a few interesting bits of news this week, so let’s get right into it.

That’s us for another week. If you know of any JavaFX news that you think is worthy of being included here, please email me and let me know. Catch you all in a weeks time!

Vancouver Olympics Chooses JavaFX

Vancouver Olympics Chooses JavaFX

Some really great news I’ve had to keep under my hat for the past few months is that the Vancouver Olympics website has chosen JavaFX for a really cool visualization. It is an exceptionally well done application with stunning UI and does a terrific job showing off the potential of JavaFX in data visualization scenarios.

Vancouver Olympics JavaFX Application

Vancouver Olympics JavaFX Application

Go and check out the application running live. It has data going back many years showing how many metals were won by different countries over time, which athletes won which metals, and so on. It is built and delivered on the publicly shipping release of JavaFX. Really exciting for JavaFX!

Silicon Valley JavaFX JUG

I had the honor to be the first official speaker at the first JavaFX user group meeting (of which I am aware!). The Silicon Valley JavaFX JUG, organized by Stephen Chin (one of the authors of Pro JavaFX, which is an excellent book), met this past Wednesday. Google hosted the event and supplied the evening’s pizza, for which I am personally very grateful!

PDF Version

Stephen had setup a streaming feed so people not in the area could follow along, which I thought was really cool. Its always fun to present about JavaFX as it is something I’m passionately interested in. Yes, working on JavaFX is my day job, but if I didn’t really love it and believe in it I wouldn’t be doing it. The thing that energizes me is knowing both what it is that we have built, and what we are building. It is really a fantastic platform. Its a joy to use when building applications and getting better all the time.

That Infernal Scenegraph Warning Message: Part Deux

Stuart Marks has written up part II of the three-part series on the scenegraph warning message that you have seen in JavaFX1.2. I covered and linked to the first version previously. It really is a terrific read, and details some of the subtle semantics of bind. Stuart always does such an excellent job describing these subtle issues.

In my earlier post on this topic I hinted that we had found a resolution to the issue surrounding the warning message, I hinted further in some of my replies to comments, and I even left it as sort of a cliffhanger as to what the resolution was. So, here’s the resolution.

We’ve decided that when a node is added to a group, that node is automatically removed from the group that previously owned it, if any. (Let’s call this the “auto-remove” feature.) We’ve also decided to turn off the warning message by default, but to have it be enabled optionally, possibly via a system property, for debugging purposes. Finally, we’ve relaxed the enforcement of some scene graph invariants in cases where the group’s content sequence is bound.

During the development of our current release, we kept running into this issue. A couple of us wrote code that we thought was reasonable, yet it surprised us when the warning message came out! We had a few hallway conversations from time to time, but a clear-cut answer never emerged. Finally, we realized that we had to get the interested parties in a room and have a knock-down, drag-out meeting to resolve the issue. And so on October 7, 2009, Amy Fowler, Kevin Rushforth, Richard Bair, and I got into a conference room to decide the issue. Three hours later — with no breaks! — we had decided. Actually, it was a great meeting, without a lot of conflict. There were just a lot of issues to cover. Each of us came into the meeting with our initial opinions, but the issues were so close that I think each one of us switched sides at least once during the meeting.

JavaFX links of the week, December 7

Welcome to the second week of our JavaFX links of the week posts. This week perhaps the biggest news was the release of more details about what is (potentially – things may of course change) coming up in JavaFX 1.3. From the feedback I’ve personally received from people, it seems that you’re all quite excited about the new features and controls, which is of course great to hear.

Please, as always, you can email me your links that you want covered. We want to make sure we draw attention to the best things happening in the JavaFX world each week, and sometimes we need your help to find them.

That’s it for another week. Have a great week everyone and we’ll see you again next week. Of course, keep your eyes peeled for JavaFX posts coming up on this website, and follow us on twitter for notification, as we bring you the latest news and developments related to JavaFX.

Inkscape has save as JavaFX support

Inkscape has save as JavaFX support


The new Inscape 0.47 has a very cool feature, it can save any drawing as a JavaFX file. Inkscape is a open source vector graphics editor, with capabilities similar to Illustrator or CorelDraw and is based on the standard SVG file format. It will save out your drawing as a JavaFX source file that contains a subclass of CustomNode which has all the graphics from your drawing in it. Its a shame it only supports JavaFX source files and not FXZ files as they can be loaded at runtime without the need to compile them. Maybe the next release will support FXZ as well as it should not be hard the formats are very similar. Even without FXZ support this is an amazing addition and I am sure will prove really useful to a lot of people working with JavaFX.

So go download it now and have a play 🙂

JavaFX links of the week, November 30

Hello, and welcome to a new weekly post on FX Experience. In this post, and all future ‘JavaFX links of the week’, we’ll be covering the latest and greatest JavaFX news that you may have missed in the past week. You may recognise this segment, as it is a subset of the ‘Java desktop links of the week’ that I post on my own blog. Whilst I work out the best way to go forward, the JavaFX links section will find itself being duplicated on both sites.

As with my website, this weekly post tries to not take itself too seriously. We certainly won’t be covering every JavaFX news item every week – we’ll pick out the quality topics that we think you’d like. Also, whilst we all work on JavaFX at Sun, we usually don’t have any insight into the projects we’re linking to, so sometimes we might make mistakes in summarising links. So, if you want to flame anyone, pick me – the best way is to email me. Also, I’d appreciate any links you may have that you think deserve some coverage.

That’s the first week of JavaFX links of the week down. If you’re interested in other Java desktop technologies, check out Java desktop links of the week, and remember to follow the fxexperience twitter stream for more updates.

Writing a Java-based Task

In a post from earlier this year I explored the concept of background tasks in JavaFX. If you haven’t yet, you might want to review that article before reading on. For the impatient: JavaFX is currently a single threaded programming language. All code you write in JavaFX occurs on the same thread. Since you don’t want to write an unresponsive application, you need to write long-lived operations on a background thread. The Task API provides a single consistent abstraction which all background operations in JavaFX are based on. This means whether you are computing fibonacci sequences, breaking down protein chains, writing to a database or reading data from disk there is a single consistent programming model and API that your GUI communicates with. And we think this is a pretty good idea. (more…)