Support

Frequently Asked Questions

Find answers to the most common questions about FlexGanttFX — licensing, platform support, Java versions, and more.

General

What is FlexGanttFX?
FlexGanttFX is a very powerful and complex custom control for JavaFX applications. It is capable of displaying timeline-related data in an attractive visual way. FlexGanttFX allows the editing / modification of the data, hence enabling users to perform planning and scheduling operations. FlexGanttFX does not include any business logic, which means that it is up to the application to react properly when the user has performed a change.
What can I build with FlexGanttFX?
You can build any kind of application that requires activities to be shown below a timeline. In most cases our customers build planning and scheduling applications with it. Examples are ERP systems, manufacturing execution systems, etc...
Is FlexGanttFX open source?
No, FlexGanttFX is a commercial piece of software. Companies can acquire licenses in order to work with it and to deploy it as an integral part of their solutions.
Which versions of Java does FlexGanttFX support?
FlexGanttFX supports Java 8 through Java 26. The Java 11+ version can be run with OpenJFX version 11 or higher.
Which versions of JavaFX / OpenJFX does FlexGanttFX support?
For Java 8, FlexGanttFX works with the JavaFX release that comes bundled with the JDK. For Java 11 through 26, FlexGanttFX can be run with OpenJFX version 11 or higher.
How do I add FlexGanttFX to my project?
The FlexGanttFX distribution includes a lib folder. The four JAR files inside that folder need to be added to your application's classpath or module path. In addition a folder called "ext" contains two JAR files that are also required. One is the ControlsFX release needed for FlexGanttFX and one is used for supporting licensing keys.
Do you have a Swing version of FlexGanttFX?
Yes. It is called FlexGantt and has been around for many years. You can download it from the DLSC website. It is also a commercial product and requires licensing just like FlexGanttFX.
Do you have a JavaScript version of FlexGanttFX?
Our partner AISO has re-implemented the FlexGanttFX API in JavaScript. You should visit their product website. It is also a commercial product and requires licensing just like FlexGanttFX.

Deployment

Does FlexGanttFX run in browsers like Chrome or Safari?
Yes it does but it requires the use of JPRO. You can find more information about this product on their website.
Does FlexGanttFX run on mobile devices like iPad, iPhone, Android, etc...?
Yes it does but it requires the use of the Gluon Client plugin in combination with the GraalVM.
Does FlexGanttFX run on embedded devices?
We think so because Java and JavaFX run on embedded devices. But to tell you the truth, we haven't had this use case, yet. No customer so far required this. So if you want to do this please give it a try and let us know.

Features

Do you provide different ways of laying out the timeline data / the activities?
Yes. FlexGanttFX supports three different layouts. The most used one is the standard Gantt chart layout where activities are shown as horizontal bars. In addition to that applications can display charts / histograms via the chart layout. A very unique layout is the agenda layout where activities are shown similar to a regular calendar view meaning that the y-axis is used for the time of day.
Does FlexGanttFX support printing?
Not really. In the past we have seen that most applications did not require this feature and that the usability of a printed complex Gantt chart is somewhat limited. Very often the requirements for the printed version were very different to the requirements of the on-screen version. So we decided to leave this task up to the applications using FlexGanttFX. The only thing possible at the moment is to use the standard JavaFX printing approach where the application creates a snapshot of the view and sends that to the printer.
Can I synchronize scrolling between multiple Gantt charts (split screen)?
Yes you can, simply by binding properties between two or more Gantt chart instances. However, we have already done this for you and added specialized containers that allow you to show two, four, or any number of charts at the same time. These containers are called DualGanttChartContainer, QuadGanttChartContainer, and MultiGanttChartContainer.
How can the user scroll the timeline?
The user can scroll via scrollbars that are showing at the bottom of the right-hand side of the Gantt chart. Two different types of scrollbars are supported. A regular scrollbar for a fixed time horizon (earliest and latest time) and a custom scrollbar based on the PlusMinusSlider of the ControlsFX project that allows the user to scroll indefinitely into the past and the future. These scrollbars auto-hide by default and only show up when the user moves the mouse cursor to the bottom edge of the graphics area (can be disabled). The user can also scroll via "panning" where he / she presses the mouse in the background and then drags to the left or right.
Is drag & drop supported?
Yes it is. You can drag activities between Gantt charts in the same window or more natively between different windows or to the desktop. All of that can be configured.
Is it possible to add controls to the rows?
Yes it is. A controls factory callback can be registered that will be invoked by each row. The returned controls will be placed on top of the row. Another great feature is the ability to add a whole different UI for each row that becomes visible when the row gets flipped around, meaning this UI is actually "behind" the row and becomes visible upon request.

Licensing

Which license types are available?
We support two license types. A developer license and a runtime license. The developer license becomes necessary once the 30 day trial period has expired. A developer license allows you to continue using the product but you will see console output that the product can only be used for development purposes. Once your product is ready for release you have to use a runtime license. This is independent of whether the release will be in-house or to a third party.
Where can I purchase a license?
You can order directly from DLSC Software & Consulting GmbH. Just send us an email.
How do I set the license key?
You have to call FlexGanttFX.setLicenseKey("...") before creating any FlexGanttFX controls. Ideally you call this immediately in your application's main() method. Alternatively you can pass the key as a system property called flexganttfx.license.

Customization

Can I change the editing behaviour when working with activities?
Yes you can. A callback can be registered that specifies when exactly which editing operation becomes active. The default callback allows the user to change the start time when the mouse cursor is on the left edge of an activity, change the end time when the cursor is on the right edge of an activity, move the entire activity when the mouse cursor is in the middle. If the activity is a "completable" activity then the left edge will trigger an editing operation where the user can change the "percentage complete" value of the activity.
Can I change the visual appearance of activities?
Absolutely. Activities in FlexGanttFX are drawn via the Canvas API of JavaFX. Different activity renderers can be registered for different types of activities. The renderers can use the information provided by the activity (e.g. a "status") to draw the activity differently. Renderers give you control over every single pixel on the screen.
Can I add visual information to the rows?
Yes, this is done via so-called "system layers". FlexGanttFX ships with a standard set of these layers, e.g. a CalendarLayer that knows how to draw things like weekends (gray background). Another example is the GridLinesLayer that knows how to draw grid lines defined by the timeline at the top.
Does FlexGanttFX support layers?
Yes, layers are first-class citizens in FlexGanttFX. You can have activities on different layers allowing you to overlay your primary activities with secondary activities that are simply used to annotate the primary activities. Layers can be shown or hidden at any time. API is available to also change the order of the layers. The standard Gantt chart toolbar provides a UI that allows you to manipulate the layer order and visibility.
Is the timeline customizable?
Yes. The timeline consists of two sub-components. The first one, the dateline, is used for showing the actual time / dates / hours. A pluggable cell factory is used to create its UI. The second subcomponent is the eventline. It displays time cursors but also a single "frozen row" where applications can display global activities and events. Those can be customized via pluggable renderers.

Still have questions?

Can't find the answer you're looking for? Get in touch with the team at DLSC.

Contact Us