MaterialFX is an open source Java library which provides material design components for JavaFX
Explore the wiki »
Download Latest Demo
·
Report Bug
·
Request Feature
- About the Project and History of JavaFX
- About the Logo
- Some GIFs
- Getting Started
- Changelog
- Roadmap
- Contributing
- License
- Contact
- Donation
- Supporters
JavaFX is a software platform intended to replace Swing in creating and delivering rich client applications that operate consistently across diverse platforms. With the release of JDK 11 in 2018, Oracle has made JavaFX part of the OpenJDK under the OpenJFX project in order to increase the pace of its development.
Key features:
- FXML and SceneBuilder, A designer can code in FXML or use JavaFX Scene Builder to interactively design the graphical user interface (GUI). Scene Builder generates FXML markup that can be ported to an IDE where a developer can add the business logic.
- Built-in UI controls and CSS, JavaFX provides all the major UI controls required to develop a full-featured application. Components can be skinned with standard Web technologies such as CSS.
- Self-contained application deployment model. Self-contained application packages have all the application resources and a private copy of the Java and JavaFX runtimes. They are distributed as native installable packages and provide the same installation and launch experience as native applications for that operating system. JavaFX is a software platform for creating and delivering desktop applications, as well as rich Internet applications (RIAs) that can run across a wide variety of devices.
Over the years the way of creating GUIs has often changed and JavaFX default appearance is still pretty much the same. That's where this project comes in. The aim of my project is to bring components which follow as much as possible the Google's material design guidelines to JavaFX. The second purpose is to provide a successor to the already available JFoenix library, which is a bit old and has a lot of issues.
In recent months the project has evolved a lot, to the point that it is no longer a simple substitute.
To date MaterialFX offers not only restyled controls, but also: new and unique controls such as the Stepper,
controls completely redone from scratch such as ComboBoxes or TableViews (and many others),
and many utilities for JavaFX and Java (NodeUtils, ColorUtils, StringUtils ...).
MaterialFX v11.13.0 brought a lot of fixes and new features, but it also brought a new logo, something that is more
meaningful for me and that somewhat represents the new version.
The new logo is a Phoenix, the immortal bird from Greek mythology, associated to regeneration/rebirth.
When a Phoenix dies it obtains new life by raising from its ashes.
MaterialFX v11.13.0 fixed many critical bugs and broken features, I like to think that it is reborn from
the previous version, so I thought a new logo would have been a good idea.
Imgur Link: Gallery
In this section you can learn what do you need to use my library in your project or see a preview/demo which I'm planning to release as runtime images here on github.
To build MaterialFX, execute the following command:
gradlew build
To run the main demo, execute the following command:
gradlew run
NOTE: MaterialFX requires Java 11 and above.
NOTE: Starting from version 11.14.0 (next major version), MaterialFX will transition to Java 17 and bump version to 17.x.x. What will happen to version 11 is still to be decided
repositories {
mavenCentral()
}
dependencies {
implementation 'io.github.palexdev:materialfx:11.13.0'
}
<dependency>
<groupId>io.github.palexdev</groupId>
<artifactId>materialfx</artifactId>
<version>11.13.0</version>
</dependency>
See the CHANGELOG file for a list of changes per version.
See the Open Issues for a list of proposed features (and known issues).
See the ROADMAP for a list of implemented and upcoming features.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the GNU LGPLv3 License. See LICENSE
for more information.
Alex - alessandro.parisi406@gmail.com
Project Link: https://github.com/palexdev/MaterialFX
It's been more than a year since I started developing MaterialFX. Implementing cool looking, fully functional controls,
introducing new components and features as well as providing many utilities for JavaFX and Java is really hard,
especially considering that developing for JavaFX also means to deal with its closeness, its bugs, its annoying
design decisions. Many times I've honestly been on the verge of giving up because sometimes it's really too much
stress to handle.
But, today MaterialFX is a great library, supported by many people and I'm proud of it.
If you are using MaterialFX in your projects and feel like it, I recently activated GitHub Sponsors so
you can easily donate/sponsor.
(If you want your github page to be linked here and you didn't specify your username in the donation, feel free to contact me by email and tell me. Also contact me if for some some reason you don't want to be listed here)
- Alex Hawk
- Yiding He
- Alaa Abu Zidan
- Ultraviolet-Ninja
- Sourabh Bhat
- Mohammad Chaudhry (thank you very much for the huge donation, YOU are the legend)
- Yahia Rehab
- Mauro de Wit
- Your name can be here by supporting me at this link, GitHub Sponsors
Thank you very very much to all supporters, to all people who contribute to the project, to all people that thanked me, you really made my day