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!
One of the teams working on JavaFX is located in Prague. This team is responsible for many things, including the base scenegraph API, layout, core libraries, animation, and ports to some mobile devices. They have now started up a team blog to publish details of their work. The first post comes from Martin Sladecek, who is currently spending some of his time working on optimising and bug fixing the JavaFX layout APIs. His post is about the peculiarities of JavaFX layout.
Jens Deters continues to work on his Font Awesome library for JavaFX, pushing out a minor release that includes a few new features.
Toni Epple has posted about responsive design with JavaFX. His suggestion is to switch stylesheets based on the system / screen size / etc to alter the styling of UI controls, etc.
We put together a demo that shows what JavaFX can do on a RaspberryPi running fill 1080p HD on a TV using 5 way navigation(Arrows + Select). I hope you enjoy it, we had a lot of fun making it.
The first section of the video is a real recording direct of the HDMI output of the Raspberry Pi. So you can see the raw performance of the device, though video capture was limited to 30fps when the Pi was rendering at 60fps much of the time. The second section is a demo of how SceneBuilder could be used to build one of the demos. In all the menus we show the little overlay of arrow keys in top right corner so you can see how the menu is being navigated.
There are 4 separate menu demos:
The first menu is a classic 2D menu system with a cool 2.5D section chooser.
This is a cool vector 2D animated menu with a fun visual style. Playing with the idea of rotation.
This is a cartoon retro style 3D menu showing 3D extruded text and 3D modeled TVs. The text and TVs were created in Cheetah 3D and exported as OBJ then imported using the OBJ importer available in the open source 3D Viewer sample app. In this demo and the next we have random animated lighting in and the ability to spin the 3D model with the <- and -> arrow keys so that the user can get a feeling for it being real time rendered 3D rather than video of offline rendered content.
This was a way out 3D menu featuring DukeBot who was a early alternative design for the Java Duke mascot that did not get chosen. He was modeled and animated by John Yoon in Maya and we then imported the Maya ASCII file directly with all animation into JavaFX. The code for this menu is pretty tiny as its mostly working off the imported Maya file. The Maya importer is also open source and in the 3D Viewer sample app.
Its mostly running on the shipping EA of JavaFX 8 Embedded we prototyped a couple changes to the platform that we are working on making them real and I hope they will make it into 8 but not sure yet if we will have time. The changes are some performance improvements to how we draw into frame buffer, also the ability to draw JavaFX with transparent background on a hardware layer over hardware decoded video.
A very quiet week this week! I guess people are now starting to prepare for JavaOne. I’ve noticed a similar phenomena in past years where things go quiet in the weeks leading up to JavaOne as everyone starts to work on their projects that they will announce and show off in sessions. In any case, enjoy the links below! 🙂
Just a reminder that if you haven’t responded to the JavaFX 2013 survey you should definitely take the two minutes required to fill it in.
Arnaud Nouard has posted an update to his Undecorator project, which is a custom styling for stages.
Jörn Hameister has posted about how to create a JavaFX-based lottery wheel. As he says in the post, “This article shows how to use TranslateTransitions, FadeTransitions, Timelines and Timeline chaining to implement a simple lottery wheel where names rotate around a point.”
I respun the ControlsFX 8.0.1 release to fix a bug in the PropertySheet control that prevented it working in some cases. You can redownload it from the usual place, or also from Maven Central.
I told you it was a quiet week! 🙂 Catch you all again in a weeks time.
Hi all – welcome to another weeks worth of links! Enjoy 🙂
There is another JavaFX survey that you should definitely consider filling in if you have a spare two minutes. Your input goes straight to the relevant people inside Oracle to help with decision making, etc.
Gerrit Grunwald continues to play with JavaFX, Nashorn (JavaScript on the JVM) and XMPP. This week he has implemented support such that he can essentially talk to his Raspberry Pi via XMPP and send it JavaScript code, which it will then compile and run. This JavaScript could in fact be a JavaFX application, given that JavaFX applications can be written in JavaScript (or any JVM-based language).
Carl Dea has a post about the printing support coming up in JavaFX 8.0.
Antoine Mischler has blogged about natural language search in FXML. As stated in the blog post, “This plugin is the result of a collaboration between dooApp and the INRIA (French public science and technology institution). We investigated a new way to automatically recover traceability links between specifications and code elements.” Further on in the post they go on to say “In our work, we introduced a new approach based on the analyze of the UI labels. Our idea is that the specifications lead most of the time to texts displayed to the user in the user interface and that these texts will use a precise domain terminology. Then it’s possible to retrieve the UI label usage in the code, to identify the pieces of code you are looking for!”
It’s been almost 2 years since we released JavaFX 2.0 on Windows, followed by Mac OS X and Linux support, and plenty of new features. It has been a blast for us, and we’re pretty happy with what we’ve accomplished so far. JavaFX 8 (JDK 8) is looking in great shape, and we’re pretty much done open sourcing all of JavaFX through OpenJFX. However, nothing matches hearing from you and getting a pulse on the developer community.
So, it’s time for another survey on FX Experience! You may recall our last survey was about tablets and mobile support, and we received an absolutely huge number of submissions. That information was fed directly to the relevant people, and they’ve asked us again to put out the survey below. Your input is hugely appreciated and it is a great way for you to continue to influence the future of JavaFX! Get your friends to participate! 🙂 (more…)
Hi all. Welcome to another weeks worth of links. Enjoy 🙂
JDK 8 (which includes JavaFX 8.0) was updated for ARM Linux this week. Previously anyone playing with JDK 8 only had access to build 36. With the release this week, you can now download build 97! In other words, a huge amount of improvements are in this build compared to what was available before. Also, JDK 8 builds for ARM Linux will be part of the regular releases from here on out, so people on Raspberry Pi and other such devices can test on the very latest code. Daniel Blaukopf has also updated the OpenJFX wiki pages to include details about OpenJFX on the Raspberry Pi, and how to build OpenJFX for a Raspberry Pi.
This week I was incredibly pleased to announce the availability of ControlsFX 8.0.1, a major release containing a number of new features and bug fixes. New features included a PropertySheet control, a NotificationPane, ‘lightweight’ dialogs (i.e. internal dialogs), a font chooser dialog, and a progress bar dialog. This is the third release of ControlsFX in as many months, so progress is really pleasing. If you’re keen to follow along or join in, visit the ControlsFX website for more information (or go directly to the BitBucket repo).
Robert Ladstätter has put up part two of his Sudoku grabber and solver application, which can now solve a Sudoku puzzle simply by the user placing the puzzle in front of their webcam. Pretty cool! 🙂
Just a quick post: ControlsFX now has new URLs. I’ve gone through and updated most links already but there are bound to be a few that are out of date (which I’ll get to in due time). In any case, the main change is the URL for the BitBucket repo. It is now the following: code.controlsfx.org. Additionally, in an effort to make the urls I link to often slightly easier to remember, I’ve also created the following subdomains:
Hot on the heels of ControlsFX 8.0.0 (which has had over 1000 downloads already!), Eugene Ryzhikov and I are very pleased to announce the availability of ControlsFX 8.0.1. Now, to be clear, despite this only being an 0.0.1 increment in version numbers, as per our release versioning policy, this is actually a major release comprising a number of new features. The number of people downloading and using the previous ControlsFX releases is really, really pleasing – especially when you take into account the fast release cycle and the fact that ControlsFX depends on JavaFX 8.0, which is only part of JDK 8!
In 8.0.1 final, the most notable features are detailed below, but before I get into that I just wanted to remind you that this is an open source project that you can participate in, either through helping with documentation, bug fixing, new features, or whatever else. Here I have to give thanks to Danno Ferrin for his continued support of our build system, and Hendrik Ebbers for his work on enabling a continuous build of ControlsFX. Finally, another mention of Eugene Ryzhikovwho has been my partner in crime on most of these features – he single-handily developed the PropertySheet control in this release!
Also, as per usual, before you ask a question on how to use the API, please refer to our JavaDocs. We put so much effort into them that it pains us every time we have to refer you to them, where your question has already been answered 🙂
Finally, learn more about ControlsFX, and download it, from the ControlsFX page.
A heap of new source code and news this week – enjoy! 🙂
The big news this week was the progress that the open source community around JavaFX (and OpenJFX in particular) has made with getting JavaFX code to run on iOS devices. Tobias Bley has a blog post detailing what has been achieved.
Gerrit Grunwald has made available a useful notification popup API for JavaFX applications. This notification panel opens up in the corner of the screen like many other software applications do to notify of new emails, etc. This was something I was planning to work on for ControlsFX, but Gerrit beat me to it (although ControlsFX does have a NotificationPane for in-app notification, if you’d rather notify within your application)! 🙂
Robert Ladstätter has a cool blog post about a sudoku solving JavaFX application written in ScalaFX. What’s even more impressive is that you just feed the application a photo of the unsolved sudoku puzzle! Watch the video to see it in action.
JIDESoft has released more JideFX source code as open source. The newly open sourced projects are JideFX Decoration, JideFX Validation, and JideFX Fields.
Andreas Billmann has posted about creating custom ListCells for the ListView control in JavaFX (although the same concept applies for all cell-based UI controls such as TreeView, TableView, TreeTableView and ComboBox).
As mentioned last week, Angela Caicedois presenting this week at the Silicon Valley JavaFX Users Group on July 10. As per usual it is streamed live online so even if you aren’t in Silicon Valley you can join in. Angela is presenting on “Beyond Beauty: JavaFX, Parallax, Touch, Raspberry Pi, Gyroscopes, and Much More”.
A relatively quiet week this week, and I’m well behind schedule today, so let’s just get right into the links! 🙂
Angela Caicedois presenting at the Silicon Valley JavaFX Users Group on July 10. As per usual it is streamed live online so even if you aren’t in Silicon Valley you can join in. Angela is presenting on “Beyond Beauty: JavaFX, Parallax, Touch, Raspberry Pi, Gyroscopes, and Much More”.
JavaFX Scene Builder 1.1 build b28 is now available for download.
Jim Weaver has posted the slides for his JayDay 2013 talk regarding JavaFX touch input functionality.
Christophe Dufour has posted about FXBinding, a project to provide additional binding APIs for JavaFX developers.