# openjdk/jfx

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/openjdk-jfx).**

3,186 stars · 564 forks · C++ · gpl-2.0

## Links

- GitHub: https://github.com/openjdk/jfx
- Homepage: https://openjdk.org/projects/openjfx/
- awesome-repositories: https://awesome-repositories.com/repository/openjdk-jfx.md

## Topics

`java` `javafx` `openjdk` `openjfx`

## Description

This project is a Java GUI framework used to build cross-platform desktop, mobile, and embedded applications. It centers on a hardware accelerated graphics engine that provides 2D and 3D visualizations and visual effects, complemented by a reactive UI binding system for synchronizing data and interface updates.

The framework distinguishes itself through the FXML markup language, which separates the visual structure of an interface from its procedural logic. It also includes a dedicated CSS styling engine that allows for the customization of component appearances using external stylesheets and media queries.

Its broader capabilities cover multimedia application development, including audio and video playback and web content rendering. It provides tools for data visualization via scientific charts and dashboards, as well as support for automated UI testing through a headless runtime mode.

The project supports the creation of cross-compiled SDKs for various target platforms and can be integrated as modules into a development kit distribution.

## Tags

### User Interface & Experience

- [Cross-Platform GUI Frameworks](https://awesome-repositories.com/f/user-interface-experience/cross-platform-gui-frameworks.md) — Provides a comprehensive library of components to build graphical user interfaces for desktop, mobile, and embedded systems. ([source](https://openjfx.io/))
- [CSS-Driven Styling Engines](https://awesome-repositories.com/f/user-interface-experience/css-driven-styling-engines.md) — Features a dedicated styling engine that applies visual rules and layout constraints using a CSS-like syntax for non-web interfaces.
- [CSS Styling](https://awesome-repositories.com/f/user-interface-experience/css-styling.md) — Provides a dedicated CSS styling engine for customizing component appearances via external stylesheets.
- [Declarative UI Markup](https://awesome-repositories.com/f/user-interface-experience/declarative-ui-definitions/declarative-ui-markup.md) — Uses the FXML markup language to define the visual structure of the application separately from procedural logic.
- [Desktop Applications](https://awesome-repositories.com/f/user-interface-experience/desktop-applications.md) — Provides a dedicated environment for creating cross-platform desktop applications with graphical interfaces.
- [Event Handlers](https://awesome-repositories.com/f/user-interface-experience/event-handlers.md) — Connects user interface actions to logic using script code or controller methods defined within the markup. ([source](https://openjfx.io/javadoc/26/javafx.fxml/javafx/fxml/doc-files/introduction_to_fxml.html))
- [Markup Languages](https://awesome-repositories.com/f/user-interface-experience/markup-languages.md) — Implements an XML-based markup language to separate the visual structure of the user interface from its procedural logic.
- [Property Bindings](https://awesome-repositories.com/f/user-interface-experience/property-bindings.md) — Implements a reactive UI binding system that synchronizes data and automatically updates the interface.
- [Reactive Data Bindings](https://awesome-repositories.com/f/user-interface-experience/reactive-data-bindings.md) — Provides a reactive binding system that automatically synchronizes user interface components with changes in the underlying data state.
- [Reactive State Management](https://awesome-repositories.com/f/user-interface-experience/reactive-state-management.md) — Synchronizes data using a reactive binding system that automatically updates the UI when values change. ([source](https://openjfx.io/javadoc/26/))
- [Standard UI Control Sets](https://awesome-repositories.com/f/user-interface-experience/standard-ui-control-sets.md) — Provides a comprehensive set of standard UI control sets including buttons, sliders, and textboxes for user interaction. ([source](https://openjfx.io/javadoc/26/))
- [UI Component Styling](https://awesome-repositories.com/f/user-interface-experience/ui-component-styling.md) — Customizes the appearance of layout containers and input controls using a dedicated CSS styling engine. ([source](https://openjfx.io/javadoc/26/javafx.graphics/javafx/scene/doc-files/cssref.html))
- [UI Layout Design](https://awesome-repositories.com/f/user-interface-experience/ui-layout-design.md) — Defines user interface structures using FXML to decouple visual design from application logic. ([source](https://openjfx.io/javadoc/26/))
- [3D UI Components](https://awesome-repositories.com/f/user-interface-experience/3d-ui-components.md) — Provides the ability to visualize three-dimensional objects and components directly within the user interface. ([source](https://openjfx.io/index.html))
- [Shadow Effects](https://awesome-repositories.com/f/user-interface-experience/animation-and-motion-systems/shadow-effects.md) — Implements graphical enhancements such as drop shadows and inner shadows to create visual depth. ([source](https://openjfx.io/javadoc/26/javafx.graphics/javafx/scene/doc-files/cssref.html))
- [Controller-Based Application Logic](https://awesome-repositories.com/f/user-interface-experience/controller-based-application-logic.md) — Provides a mechanism to assign compiled controller classes to manage the behavior and state of UI objects defined in markup. ([source](https://openjfx.io/javadoc/26/javafx.fxml/javafx/fxml/doc-files/introduction_to_fxml.html))
- [Custom UI Control Implementations](https://awesome-repositories.com/f/user-interface-experience/custom-ui-control-implementations.md) — Provides specialized interface elements such as ribbons and gauges to handle complex user input and display. ([source](https://openjfx.io/index.html))
- [Data Visualization](https://awesome-repositories.com/f/user-interface-experience/data-visualization.md) — Includes a specialized set of components for rendering scientific charts and dashboards to visualize complex data.
- [Embedded Web Views](https://awesome-repositories.com/f/user-interface-experience/embedded-web-views.md) — Renders web pages and executes JavaScript using an integrated browser engine. ([source](https://openjfx.io/javadoc/26/))
- [Modular UI Components](https://awesome-repositories.com/f/user-interface-experience/modular-ui-components.md) — Enables the use of external markup files to reuse components and organize complex user interface layouts. ([source](https://openjfx.io/javadoc/26/javafx.fxml/javafx/fxml/doc-files/introduction_to_fxml.html))
- [User Interface Design](https://awesome-repositories.com/f/user-interface-experience/user-interface-design.md) — Enables the creation of visual layouts and interactive prototypes that translate directly into functional interfaces. ([source](https://openjfx.io/))
- [Visual Interface Prototyping](https://awesome-repositories.com/f/user-interface-experience/visual-interface-prototyping.md) — Provides a visual editor to create interactive prototypes and layouts that generate the necessary UI structure. ([source](https://openjfx.io/index.html))
- [Visual Themes](https://awesome-repositories.com/f/user-interface-experience/visual-theme-configurations/visual-themes.md) — Allows applying predefined design systems or custom skins to change the application appearance without modifying code. ([source](https://openjfx.io/index.html))

### Graphics & Multimedia

- [Graphics Pipeline Architectures](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/engines/graphics-pipeline-architectures.md) — Uses a graphics pipeline to translate high-level visual commands into hardware-optimized drawing operations.
- [Hardware-Accelerated Rendering](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/engines/graphics-pipeline-architectures/hardware-accelerated-rendering.md) — Utilizes a hardware-accelerated rendering pipeline to offload 2D and 3D visual effects to the GPU.
- [Graphics Rendering APIs](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/graphics-apis-bindings/graphics-rendering-apis.md) — Utilizes native graphics APIs like Metal to delegate rendering to the GPU for high-performance visuals. ([source](https://openjfx.io/highlights/26))
- [Scene Graphs](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/scene-management-systems/scene-graphs.md) — Maintains a hierarchical scene graph of visual nodes to compute transformations and render the interface.
- [Multimedia Application Frameworks](https://awesome-repositories.com/f/graphics-multimedia/multimedia-application-frameworks.md) — Integrates video and audio playback and web content rendering into a cohesive application development framework.
- [Media Players](https://awesome-repositories.com/f/graphics-multimedia/media-players.md) — Provides dedicated media players and view components for playing audio and video files. ([source](https://openjfx.io/javadoc/26/))

### Software Engineering & Architecture

- [Hardware Abstraction Layers](https://awesome-repositories.com/f/software-engineering-architecture/hardware-abstraction-layers.md) — Interfaces with platform-specific graphics APIs to delegate rendering tasks to the GPU.
- [UI Testing Runtimes](https://awesome-repositories.com/f/software-engineering-architecture/headless-runtimes/ui-testing-runtimes.md) — Supports a headless runtime mode to enable automated testing of the user interface without a physical display.

### Data & Databases

- [Data Visualization Charts](https://awesome-repositories.com/f/data-databases/data-visualization-charts.md) — Includes a set of scientific charts, Gantt charts, and dashboard tiles for complex data visualization. ([source](https://openjfx.io/index.html))

### Development Tools & Productivity

- [UI String Localizations](https://awesome-repositories.com/f/development-tools-productivity/localization-support/string-localization/ui-string-localizations.md) — Supports the translation of user interface labels and accessibility strings via locale-specific resource bundles. ([source](https://openjfx.io/javadoc/26/javafx.fxml/javafx/fxml/doc-files/introduction_to_fxml.html))

### Programming Languages & Runtimes

- [Cross-Platform Binary Generation](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/multi-target-compilers/cross-platform-binary-generation.md) — Produces application binaries for target platforms including mobile and embedded architectures via cross-compilation. ([source](https://wiki.openjdk.org/display/OpenJFX/Building+OpenJFX))

### Testing & Quality Assurance

- [UI Automation](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/ui-automation.md) — Provides a headless runtime mode to simulate user input and verify interface behavior for automated testing.
- [User Interaction Simulation](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/user-interaction-simulation.md) — Mimics user interactions and verifies visual element states to ensure correct interface responses during automated testing. ([source](https://openjfx.io/))
- [Headless UI Testing](https://awesome-repositories.com/f/testing-quality-assurance/headless-ui-testing.md) — Allows graphical applications to run without a physical screen for automated user interface testing. ([source](https://openjfx.io/highlights/26))

### Web Development

- [Skin-Based Control Architectures](https://awesome-repositories.com/f/web-development/component-based-architectures/component-based-architectures/skin-based-control-architectures.md) — Decouples the functional logic of UI controls from their visual representation using interchangeable skins.
