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.

JavaFX links of the week, October 25

A bunch of links this week. Enjoy! 🙂


Catch you all in a week: same bat time, same bat channel! 🙂

JavaFX links of the week, October 21

A relatively quiet week this week – it seems people are recovering after JavaOne, or getting prepared for all the Java-related conferences that seem to kick off this time of the year in Europe! 🙂 In any case, enjoy the links from the past week and I’ll catch you again next week with more 🙂

  • The big news this week is that the OpenJFX project announced it is now fully open source (barring source code that cannot be open sourced as it is not owned by Oracle). This announcement came due to the release of the media source code.
  • With the recent release of ControlsFX 8.0.2, I interviewed Eugene Ryzhikov to introduce one of the main guys behind the project and to see where he sees the project going in future releases.
  • Stephen Chin has announced that he will be interviewing James Gosling again on Wednesday, October 23rd at 8AM Hawaii Time, which is apparently 11AM PST. As Stephen notes, “during this broadcast we will show some of the footage of his aquatic robots, talk through the technologies he is hacking on daily, and do Q&A with folks on the live chat. “
  • Pedro Duque Vieira has revisited and improved his Metro styling for JavaFX. It’s great to see people working on ‘native’ styles for JavaFX. We now have both a Metro and an Aqua style for JavaFX.
  • Geertjan Wielenga has posted about CaseLnk Case Management System, which is built using JavaFX and the NetBeans Platform.
  • Andy Till has published code for his floaty-field JavaFX component. You can see an animation at the previous link to better understand what this is all about.
  • The IDR Solutions blog has two posts this week. Firstly, George Perry posts about his three big takeaways from rewriting some of their Swing code in JavaFX. Secondly, Kieran France has posted about his experiments with JavaFX and Java 8, particularly around printing in JavaFX 8.0.
Interview with Eugene Ryzhikov

Interview with Eugene Ryzhikov

It has been a long time since I published an interview, but I’ve finally got back around to it and this week I’m pleased to have an interview with Eugene Ryzhikov, a long time Java desktop developer and open source contributor. I’ve been working with him for many months on ControlsFX, where he has been contributing large amounts of code and many of the features you see in ControlsFX are directly due to his hard work. Hopefully in the coming months I’ll start publishing more interviews again, but as always it depends on time! Right, let’s get into the interview – enjoy! 🙂

Eugene Ryzhikov

Hi Eugene – could you please introduce yourself?
I’m a graduate of Kaunas Technology University with a Masters in Computer Engineering. But since my early days I have been involved in software development, starting with the now archaic PL1 and several assembly languages, Borland IDEs, before moving to Java in the 90’s and now sharing my programming time between Java and Scala, which I can only praise. Thankfully, Java is moving in the same direction, which is evident in Java 8 Lambdas.

It would be fair to say you’re a relative newcomer to the JavaFX world. What did you do before your involvement in JavaFX?
I was always a big fan of Desktop UI. It started from the early days of Turbo Pascal and then Delphi. I started working with Java in 1999 and have used Swing since then in most of my applications. I have developed several open source frameworks to enhance the capabilities of Swing.

I was watching JavaFX closely for several years. The switch to JavaFX 2 won me over, but I did not have enough experience in it. The solution was obvious – I had to be involved in the development of an open source JavaFX-based library. Luckily, you started ControlsFX approximately at the same time as I was looking for one, so I offered my help.

Are you employed to work on Java desktop software, or is Java desktop just a hobby of yours?
I consider myself lucky – my work and my hobby overlap. I currently work as a Software Architect. One of the big systems I started and am still involved with is related to energy trading. The client side of this system is Swing based and I developed several libraries to simplify development of required UI features and many parts of the UI itself. 

Is ControlsFX your only open source project that you are involved in?
As I said before, I have several Java and Scala based projects. One of the most popular ones is Project Oxbow. This is a collection  of useful components and utilities for Swing. The main components of it are the JTable Filtering and Task Dialog framework. The experience gained in developing the Swing Task Dialogs was directly applied to the dialog framework in ControlsFX.

ControlsFX 8.0.2 was just released. What plans do you have for future releases of ControlsFX?
I’m still surprised that ControlsFX gathers so much interest even though it only supports the as-of-yet unreleased version of JavaFX 8. At the same time it’s very exciting. I do have a lot of plans and ideas. Some of these include new controls, such as a popover control. A more grandiose one is a validation framework for JavaFX. I’ve made one in Swing once, but JavaFX presents new ideas and challenges. For example, observable collections, the new JavaFX property standard, and property binding greatly simplify many aspects of JavaFX development. CSS support makes for rethinking the whole “Look and Feel” part and is simply amazing!

What is the best way for people to see, interact and learn about ControlsFX?
There are many.  We have a lot of active discussions on the ControlsFX mailing list. General information is available at controlsFX.org and fxexperience.com. The library has an excellent JavaDoc, thanks to your relentless efforts. A lot of information can also be found at our Bitbucket repository. There are many interesting discussions related to issues and pull requests there.

How can people join in the project? Are you welcoming contributions to ControlsFX?
Everyone can contribute if they so choose; it’s so easy nowadays with sites like Bitbucket and GitHib. ControlsFX is truly an open source project. Currently we have contributions from 14 developers. Joining is super easy: sign the CLA at http://cla.controlsfx.org, fork the project at https://bitbucket.org/controlsfx/controlsfx  and send pull requests with your contributions. A contribution does not have to be code or a new control. For example, we are always looking to improve the quality of our JavaDocs, our tests or our samples. Your contribution can be in the form of an issue or feature request submitted to our issue tracker.

What has been your experience in wrapping your head around the way JavaFX works?
I like it a lot. My previous Swing experience helps a lot, but there are so many new exciting features, like CSS support, observable collections, better controls development process etc. JavaFX still has many surprises to reveal.

If you could change or improve any aspect of JavaFX, what would you do? Or, what are you really wanting to see in future releases of JavaFX?
As I said before, I am a big fan of Scala and functional programming in general. It is a great paradigm, especially for UI development. We don’t have to go far to see it – just look at how much easier ScalaFX or GroovyFX  frameworks make JavaFX development. Thankfully, this is not a dream anymore – Java 8 takes a huge step towards functional programming with Lambda and I’m certain Java developers will appreciate it. And it can only get better from there.

What is your setup for developing JavaFX-related code? Do you have a preferred IDE or any tips?
I’m OS agnostic. I have a Windows 8 desktop with Ubuntu VM on it and my laptop  is a MacBook Pro. I run Eclipse IDE on all of these platforms. I usually develop on Windows, but on the road, I do it on my Mac. This allows for greater flexibility and great testing – there are still small differences we have to deal with on each platform to make ControlsFX play nicely with all of them.

Thanks so much for taking the time to answer these questions! Do you have anything else you would like to add?
Just want to say thanks to everyone for the feedback , support, and contributions; we do try to keep up the highest possible standards in ControlsFX. Keep ‘em coming!

JavaFX links of the week, October 14

There is a bunch of great links this week. Enjoy! 🙂

Keep up the really excellent work everyone, and I’ll catch you all in a weeks time 🙂

Announcing ControlsFX 8.0.2

Announcing ControlsFX 8.0.2

It’s been roughly a month since 8.0.2 Developer Preview 2 was released, but we’re back again already with the final release of ControlsFX 8.0.2 As I always eagerly note, despite the small version 0.0.1 version increment, this is a major release of ControlsFX, bringing with it a bunch of new functionality and bug fixes. Everyone is recommended to upgrade!

For those of you that have not been following along since 8.0.1 was released, there have been two developer releases of 8.0.2 – developer preview 1 and developer preview 2. You might want to browse back and see what was in those developer previews, but I’ve also included the highlights below (and if you’re really new to ControlsFX, you might want to check out the even higher-level ControlsFX feature overview page). If you just want to download ControlsFX, it’s at the usual location.

That’s enough – here is what’s new in 8.0.2 (compared with 8.0.1, which was released on July 7th, 2013):