Welcome to the JFXtras Project.
The goal of JFXtras is to provide those pieces that developers often need in their day-to-day work, but that are (or were) missing from JavaFX. A quick impression can be found at the overview page.
JFXtras and JFXtras Labs
The project is divided into two different pieces. Components in the official JFXtras library are considered stable with APIs that are unlikely to change much in future releases. The JFXtras Labs library contains components that are currently under active development and are considered experimental. The API of the components may change significantly from one release to the next, or they may be abandoned all together.
Once the JFXtras developers feel that a component has reached a mature state, it will be moved from Labs into the main JFXtras library.
The JFXtras library has been divide into smaller parts, mainly to prevent a single artifact to become fairly large (which is a problem for the Internet of Things development). Currently JFXtras consists of the following parts:
- jfxtras-common - containing basic classes, like layouts, utility classes, etc.
- jfxtras-fxml - containing FXML related classes, most notably JFXtrasBuilderFactory which is used to easily add builders to the FXMLLoader.
- jfxtras-controls - containing standard controls, like several date and time pickers
- jfxtras-agenda - containing the 'Agenda' (Google Calendar) control
- jfxtras-icalendarfx - iCalendar API implementing RFC 5545 (more)
- jfxtras-icalendaragenda - Agenda extension for displaying and editing an iCalendarFx VCalendar (more)
- jfxtras-window - containing a non standard Window implementation
- jfxtras-menu - containing menu implementations, like corner and circular popup menu
- jfxtras-gauges-linear - gauges for creating a dashboard.
- jfxtras-font-roboto - an easy way to include Google's Roboto font in your application.
- jfxtras-all - containing all JFXtras controls in one jar for SceneBuilder (excluding labs)
- jfxtras-labs - containing incubator classes
- jfxtras-labs-all - containing all JFXtras controls in one jar for SceneBuilder (including labs)
JFXtras and JFXtras Labs are licensed under the New BSD License
If you want to use the controls in SceneBuilder, please use the all-in-one (aka shadow) jar. SceneBuilder is not able to use controls that require supporting jars, like for example jfxtras-controls.jar requiring jfxtras-common.jar.
Below are a few screenshots to give an impression of some of the components available in both JFXtras and JFXtras Labs
More details can be found at the overview page.
JFXtras Samples allows you to see JFXtras components in one convenient application. Samples requires Java 8.
Download JFXTras 8.0 Samples here.
Use java -jar jfxtras-labs-samples-8.0-r6-SNAPSHOT-all.jar to start
The version system of JFXtras deviates from the commonly used versioning schemes; the first two digits indicate the JavaFX release that is used for the distribution, so 8.0-r2 means "based on JavaFX 8.0", the "-r2" means release 2 of JFXtras. Hence the JFXtras release scheme does not include bug fix releases, only regular releases.
The reason of using an "r" in the release has to do with the fact that we do not control the release scheme of JavaFX. If we had chosen the more compatible notation "8.0.1" (.1 indicating JFXtras release 1), and JavaFX would have a bug fix release 8.0.1, we would be in trouble. In the releasing scheme with the "r" this would lead to a JFXtras 8.0.1-r1 release.
|Group ID||Artifact ID||Version|
Releases are available in Maven central
Snapshots are available in Sonatype snapshot
For Javadoc see the links above
The Java module names are the same as the artifact names, except dashes become dots, so: jfxtras-gauges-linear becomes jfxtras.gauges.linear
If you find any problems, discuss this with the developers on the mailing list, or file an issue on GitHub for the appropriate project.
Authors and Contributors
The following people have contributed to the JFXtras project.
- Stephen Chin (@steveonjava) - founder
- Dean Iverson (@deanriverson) - founder
- Tom Eugelink (@tbeernot) - active project lead
- Gerrit Grunwald (@HanSolo)
- Thomas Bolz (@teabeeoh)
- Jonathan Giles (@JonathanGiles)
- Jim Weaver (@javafxpert)
- Andy Till (@andytill)
- Andreas Billmann (@frosch95)
- Gregg Setzer (@GreggSetzer)
- Hendrik Ebbers (@guigarage)
- Mark Heckler (@hecklerm)
- johnBgood (@johnBgood)
- Jose Pereda (@jperedadnr)
- Michael Hoffer (@miho)
- Laurent Nicolas (@MrLoNee)
- Sai Pradeep Dandem (@SaiPradeepDandem)
- Thierry Wasylczenko (@twasyl)
- Will Hoover (@whoover)
- Carl Dea (@carldea)
- Pedro Duque Vieira (@dukke)
On github the most current list of members can be found!