by Jonathan Giles | Nov 3, 2013 | Links
Welcome all to another weeks worth of links. Enjoy š
Catch you all in a weeks time! š
by Jonathan Giles | Oct 27, 2013 | Links
A bunch of links this week. Enjoy! š
JavaFX
Catch you all in a week: same bat time, same bat channel! š
by Jonathan Giles | Oct 20, 2013 | Links
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.
by Jonathan Giles | Oct 15, 2013 | Interviews
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! š
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!
by Jonathan Giles | Oct 13, 2013 | Links
There is a bunch of great links this week. Enjoy! š
- Claudine Zillmann blogged about restyling AquaFX in different colours. This really shows the power of CSS in JavaFX.
- ControlsFX 8.0.2 was released this week. This is a major release, including a bunch of new features (including SpreadsheetView, native dialog titlebars, HyperlinkLabel, and more), as well as a heap of bug fixes.
- Tom Schindl has a post titled “Whereās e(fx)clipseĀ 0.9.0?“. Read on to understand what is causing a slow-down for the next release of e(fx)clipse.
- Adam Bien has posted on JavaFX 8 with Convention over Configuration, Dependency Injection, Maven and SceneBuilder.
- Renato Athaydes has blogged about two testing tools he is involved in developing that can be used to test JavaFX and Swing applications.
- Tomas Mikula has posted code for his CodeAreaFX project, which is a “text area for JavaFX that supports assigning style classes for ranges of text. It is intended as a base for code editors with syntax highlighting.”
- Bruno Borges has posted a video on YouTube introducing JavaFX on the Raspberry Pi.
- Christoph Nahr has blogged his thoughts on the feasibility of JavaFX on iOS and Android. There is also an interesting discussion that continues into the comments section.
- Chris Newland has posted his JITWatch tool, a JavaFX-based tool for understanding the behaviour of the Java HotSpot Just-In-Time (JIT) compiler during the execution of your program.
- Sven Ruppert has two posts this week. Firstly, he has a post on complex PropertyBindings. Secondly, he has a post on using Kotlin inside JavaFX with CDI.
- I came across jo-widgets this week, which is a project to provide a ‘single sourcing GUI API for Java’. In other words, it provides a single API for you to write Java desktop applications, regardless of what the implementation actually is (e.g. SWT, Swing, JavaFX, etc).
Keep up the really excellent work everyone, and I’ll catch you all in a weeks time š
by Jonathan Giles | Oct 11, 2013 | ControlsFX
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):
(more…)
by Jonathan Giles | Oct 6, 2013 | Links
A bunch of links this week – enjoy š
- Elliot Bentley has posted about WebFX, a project by Bruno Borges. WebFX is essentially a browser written in JavaFX that renders FXML pages (as well as the more traditional HTML page), which can be then scripted using a variety of JVM languages such as JavaScript.
- Geertjan Wielenga continues to explore JavaFX, and in particular the HTMLEditor control. This week he has three posts on this topic. Firstly, he has integrated the JavaFX HTMLEditor on top of HTML files on the NetBeans Platform to allow for an wysiwyg-style multiview editor (so that you can toggle between source editing and WYSIWYG editing). In another post you can see a video of this functionality. Finally, he reveals that this tooling is being developed to be used in his open source epub tool called Fosfor.
- Geertjan has also posted a summary of the talk at JavaOne about bck2brwsr, which is essentially a JVM written in JavaScript, that allows JavaFX applications to run in a web browser without the need for an applet.
- Simon Ritter has published the slides for the JavaOne session on using the Leap Motion device in JavaFX. This session was co-presented with Gerrit Grunwald, Johan Vos, and JosƩ Pereda.
- Speaking of Simon, he has also posted a summary of JavaOne.
- Danno Ferrin has posted about ‘dogfooding the future Java‘. Interestingly, he wrote and presented his sessions using JavaFX by rendering markdown syntax. To submit his slides to the conference organisers, he added printing support into his software so that he could print out each slide (and it only took 313 lines of code!).
- Thierry Wasylczenko has posted his CompilerFX code to github. CompilerFX is an application for compiling multiple Maven repositories. You can add existing repositories and then compile them sequentially but also compile them individually.
- Rob Terpilowski was interviewed by Jan Stafford over at TheServerSide.com about the pros and cons of moving from Swing to JavaFX.
- Felix Bembrick has written a blog post covering what he considers to be the six degrees of separation between JavaFX and iOS / Android devices (in other words, what he thinks is required for JavaFX to be accepted on these platforms).
- Jens Deters has posted that he has managed to solve the eGalax Touch Screen issues with JavaFX (on Raspberry Pi) that he has posted about previously.
- Sven Ruppert has posted an example about placing Buttons inside a TableView column.
- BrowserStudios.com has posted an introduction to JavaFX 2.x, where they cover why they choose to use it and how they use it.
That’s all folks! Catch you all next week.
by Jonathan Giles | Sep 29, 2013 | Links
Well, JavaOne is over and people are returning back to their home countries, hopefully energised and excited about where Java is heading. For that reason the amount of news this week is understandably light, but nonetheless, let’s get into the news.
JavaOne
- You can watch the JavaOne Strategy Keynote, JavaOne Technical Keynote and JavaOne Community Keynote videos online now.
- Jasper Potts has posted a video of the chess robot demonstrated at JavaOne last week. The interesting thing about this chess robot is that it is running with a Raspberry Pi and the software is coded in Java.
JavaFX
- Hendrik Ebbers has posted slides and details from his talks at JavaOne (along with Claudine Zillmann and Johan Vos). Firstly, Claudine and Hendrik have a post about getting emoji’s into JavaFX applications. Secondly, Hendrik has posted the slides from his “Let’s get wet” talk that he and Claudine presented regarding their AquaFX skin and CSS research. Thirdly, Claudine and Hendrik announced Flatter, which is a new CSS style for JavaFX designed for touch screens and embedded devices. Finally, Johan Vos and Hendrik presented on DataFX, which is “the best way to get real-world data into your JavaFX application”.
- Michael Hoffer has published a YouTube video summarising his JavaOne tutorial on ‘Creating Amazing Scientific Visualization Tools with JavaFX 8‘. It’s a good (and long) video, and well worth watching.
- Jim Laskey has blogged about how to implement setInterval and setTimeout JavaFX functions in JavaScript so that they may be used from Nashorn.
- yWorks have announced yFiles for JavaFX, which is a (commercial) library that allows you to create JavaFX diagramming applications that use the full range of possibilities provided by the JavaFX framework.
Catch you all next week! š
by Jonathan Giles | Sep 22, 2013 | Links
JavaOne is underway! If you’re at the conference, have a great week, attend a bunch of sessions, but more importantly enjoy the hallway track. For those of you not at JavaOne, batten down the hatches if you’re on twitter and are trying to get work done this week! š
- Jasper and Richard just presented in the JavaOne technical keynote, where they showed a custom-made tablet device called the DukePad. It is powered by a Raspberry Pi and featuring a touch screen, camera, HDMI output, GPIO pins, and more. It is powered with Java and has a custom-built JavaFX user interface.
- The Java Tutorials blog notes that JavaFX 8 Developer Preview Documents were published today on http://docs.oracle.com/javafx. They comprise Getting Started with JavaFX 3D Graphics, Adding HTML Content to JavaFX Applications, and Embedding Swing Content in JavaFX Applications.
- August Lammersdorf from InteractiveMesh has announced the first release of a COLLADA importer for JavaFX is now available. From the announcement, “the ModelBrowserJFX is correspondingly updated and enhanced with a tree and table based file system browser. It also provides an FXML export of the loaded scene graph.”
- Jeffrey Guenther has blogged about exploring the possibility of Graph Layouts in JavaFX.
- Robert LadstƤtter has blogged about his continued work with JavaFX and OpenCV on his Color Extractor project. It’s also cool to see ControlsFX being used! š
- Rob Terp has two blog posts this week. The first post is titled “Creating Custom JavaFX Components with Scene Builder andĀ FXML“, and the second post is titled “Drag and Drop With Custom Components inĀ JavaFX“.
- Tom Schindl has blogged about a memory leak in JavaFX 2.2, and has a link to the workaround used to avoid it.
- Chris Newland has posted about JITWatch, a Java HotSpot JIT Inspector written in JavaFX.
- Janice J. Heiss has published an interview with Johan Vos, regarding his plans for JavaOne, and his thoughts on topics such as social media, JavaFX and Java EE.
- Sven Ruppert has a blog post titled “CDI Callback<TableColumn, TableCell> cellFactory – from FXML“.
- Patrick Champion has written about JavaFX 8.0 and Lambda support.
Catch you all in a weeks time!
by Jonathan Giles | Sep 22, 2013 | General, JavaOne
At the JavaOne technical keynote just now Richard and Jasper introduced the DukePad – a custom built tablet device powered by a Raspberry Pi and featuring a touch screen, camera, HDMI output, GPIO pins, and more. It is powered with Java and has a custom-built JavaFX user interface.
The DukePad is a Do-It-Yourself, make-at-home tablet computer based on theĀ Raspberry PI and JavaSE Embedded 8. The plans and instructions for building the DukePad are available here, and we’re working with suppliers to make available pre-made kits that can be more easily assembled. The software on the DukePad uses RaspbianĀ Linux as the operating system, and an OSGi-based JavaFX environment. Within this DukePad environment, apps are simple JavaFX OSGi Modules.
Click for bigger image
The DukePad is not a product, it is an open source, freely available set of plans and software for assembling your own tablet using off the shelf components. As such, the quality of the DukePad software environment is demo-quality (although we did strive to write as much real functionality as we could, the realities of demo presentations requires sacrificing time on parts of the applications that are not going to be shown, in favor of smoothing out those parts that will be shown). The code is hosted in the OpenJFX repositories under apps/experiments/DukePad. We hope to see forks of this code (GitHub, BitBucket, whatever you like best) and lots of experimentation and improvement that can be shared.