JavaFX

JavaFX Real-World Apps: Monastery Disentis

Finally the first "JavaFX Real World Apps" post that actually covers an "app" and not an "application", meaning the first JavaFX application in this series that was designed for mobile devices and not the desktop. The application is simply called "Monastery Disentis". It was developed by cnlab in Switzerland. It can be used by visitors of the monastery as a guide. Below you can see a couple of screenshots that were taken on an Android device. Video: a screencast of the application. What is cool about this application is that everybody can try it out be following the [...]

By |2021-02-18T13:42:24+01:00May 8th, 2017|Java, JavaFX|5 Comments

JavaFX Tip 24: Custom Layouts for Performance and Flexibility

I just finished a two month sprint on advancing CalendarFX and getting it ready for release 8.4.0. One focus of this sprint was on performance. There are many things that can influence performance but when it comes to JavaFX the number of nodes in your scenegraph and CSS styling are top candidates for optimisation. After reviewing the custom controls that ship with CalendarFX I realized that many of them used a lot of nested panes (BorderPane, VBox, HBox, GridPane) in order to achieve a specific layout. Nested panes result in a high node count and complex CSS styling instructions. One simple example are [...]

By |2021-02-18T13:42:25+01:00February 1st, 2017|CalendarFX, Java, JavaFX, Tips & Tricks|0 Comments

JavaFX Real-World Apps: SkedPal

A new entry in the "Real World Applications" series. This time it is SkedPal, an application for managing a busy person's life intelligently. I have been consulting the SkedPal team in matters related to JavaFX and also when they made the decision to start using the CalendarFX framework for their calendar requirements. Below you can see a couple of screenshots of this attractive application. If you want to try it out yourself then you can simply register on the SkedPal website and download the desktop client (they also have mobile clients). I have asked Saied ArBabian, the found of SkedPal to [...]

By |2021-02-18T13:42:25+01:00July 13th, 2016|FlexganttFX, Java, JavaFX|0 Comments

JavaFX Missing Features Survey: Performance & Quality

I take it as a good sign that the categories "Performance" and "Quality" have not seen a lot of submissions in the "Missing Features Survey". Performance In the survey the performance of JavaFX was compared with the performance of Swing and people noticed that JavaFX is slower than Swing. I personally have yet to find a use-case where that is true but I do believe that they can be found, however it should be noted that JavaFX also provides a much better coding experience based on a modern API and architecture. JavaFX supports property bindings and CSS styling. These [...]

By |2021-02-18T13:42:26+01:00April 12th, 2016|JavaFX|4 Comments

New CalendarFX View: MonthGridView!

Me and my team have recently begun work on a new view for CalendarFX with the initial goal to display a whole year in vertical columns. The name of the view is MonthGridView. As usual the goal has changed slightly while coding. The view is now capable of displaying any number of months with extra months added in front or in the back. Now, for example, the developer can choose to display six months (a semester) with one month "padding" in front and one month in the back. The following screenshot shows an entire year with no padding. In [...]

By |2021-02-18T13:42:26+01:00April 6th, 2016|CalendarFX, JavaFX|5 Comments

Shadow Fields vs. Property Accessor Interface

Carl Dea recently followed up on a blog post of mine called Save Memory! Use Shadow Fields for Properties. In his blog he suggested the use of an interface called "Property Accessor" to eliminate the heavy use of boilerplate code that is needed in order to use  shadow fields. Carl also mentioned that he hasn't tested his approach with a lot of data and that he or some reader might follow up with a performance comparison. So here it comes. I wrote a small test application that implements the three strategies that Carl mentions in his post: standard properties that are instantiated [...]

By |2021-02-18T13:42:26+01:00April 4th, 2016|Java, JavaFX, Tips & Tricks|2 Comments

CalendarFX In Action: SkedPal!

If you are interested you can now see CalendarFX live in action. As of version 1.7 the AI scheduling software SkedPal has replaced their Swing-based calendar (MigCalendar) with CalendarFX 1.3 for JavaFX 8. The result is a much more consistent look and feel and user experience.    

By |2021-02-18T13:42:26+01:00April 1st, 2016|CalendarFX, JavaFX|0 Comments

JavaFX Tip 23: Save Memory! Shadow Fields for Properties.

Properties and property bindings introduced in Java 8 are extremely useful programming concepts. They are especially useful when you are developing user interfaces. In fact they are so useful that developers have fallen victim to the idea that everything should be a property instead of a primitive. Unfortunately they easily forget that properties such as SimpleLongProperty are much bigger objects than standard types such as Long. And of course they are much bigger than primitive data types such as long. In one of my current projects pretty much every model object used by the client is composed of properties. For many of these [...]

By |2021-02-18T13:42:26+01:00March 30th, 2016|Java, JavaFX, Tips & Tricks|21 Comments

Never too old to learn!

Yesterday (March 16th) I celebrated my 47th birthday. I am now packing a solid 20 years of work experience and a masters degree in computer science. Still I managed to screw up bad. A potential customer of mine, who is currently evaluating FlexGanttFX for their application, contacted me and argued that the initial model creation takes too long. 22 seconds to be precise. I asked them to send me a standalone demo and when I ran it I could confirm that it takes a long time to create the model. After further investigation I realized that they were creating over 5 [...]

By |2016-07-15T16:01:33+02:00March 17th, 2016|FlexganttFX, Java|1 Comment

JavaFX Missing Features Survey: Table View

The TableView (and TreeTableView) of JavaFX has won the prize for being the control that was mentioned the most in my recent "JavaFX Missing Features" survey and also in many follow-up discussions (including and especially the guys in our Zurich JavaFX Meetup group). I guess one of the reasons is the simple fact that almost every application needs a table view. The two most requested features / improvements for the TableView were freezing rows / columns and better editing support. Freezing Rows / Columns Freeze / lock rows - the ability to have one or more rows to stay at [...]

By