https://github.com/techsenger/stagepro
Techsenger StagePro is a library for creating custom JavaFX stages with fine-grained control over appearance and layout.
https://github.com/techsenger/stagepro
javafx javafx-application javafx-components javafx-desktop-apps javafx-gui javafx-library javafx-project
Last synced: about 1 year ago
JSON representation
Techsenger StagePro is a library for creating custom JavaFX stages with fine-grained control over appearance and layout.
- Host: GitHub
- URL: https://github.com/techsenger/stagepro
- Owner: techsenger
- License: apache-2.0
- Created: 2024-12-30T03:23:07.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-18T12:42:28.000Z (about 1 year ago)
- Last Synced: 2025-06-10T22:44:32.617Z (about 1 year ago)
- Topics: javafx, javafx-application, javafx-components, javafx-desktop-apps, javafx-gui, javafx-library, javafx-project
- Language: Java
- Homepage:
- Size: 126 KB
- Stars: 19
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.txt
Awesome Lists containing this project
- AwesomeJavaFX - StagePro - A library for creating custom JavaFX stages with fine-grained control over appearance and layout. (Libraries, Tools and Projects)
README
# Techsenger StagePro
| Support the Project! |
|:-------------|
| This project is open-source and free to use, both commercially and non-commercially, which is why we need your help in its development. If you like it, please give it a star ⭐ on GitHub — it helps others discover the project and increases its visibility. You can also contribute, for example, by fixing bugs 🐛 or suggesting improvements 💡, see [Contributing](#contributing). If you can, financial support 💰 is always appreciated, see [Support Us](#support-us). Thank you! |
## Table of Contents
* [Overview](#overview)
* [Demo](#demo)
* [Light Theme](#demo-light-theme)
* [Dark Theme](#demo-dark-theme)
* [Features](#features)
* [Limitations](#limitations)
* [JavaFX Issues](#javafx-issues)
* [Dependencies](#dependencies)
* [Usage](#usage)
* [Code building](#code-building)
* [Running Sampler](#sampler)
* [License](#license)
* [Contributing](#contributing)
* [👉 Support Us](#support-us)
Techsenger StagePro is a library that allows you to create custom stages with nearly any configuration, while remaining
easy to use. The project also includes a sampler module, featuring key samples to help you get started with the library.


Key features include:
* Fully customizable title bar configurations.
* Support for dynamic configuration changes.
* Ability to place basic buttons on either the left or right side.
* Two maximize button policies.
* Styling via CSS.
* Dark mode support.
* SVG-based button icons.
* Only two events triggered during resizing (start and finish).
* No shadow support. Currently, shadows for Stage are not supported as JavaFX provides no built-in way to render
shadows around transparent windows. This would likely require platform-specific native code.
* No native window management features. Edge-based behaviors like Windows Snap Layouts and GNOME Edge Tiling cannot
be properly implemented using Java alone. These features also require platform-specific native code.
* Use JavaFX 16–20 or versions after 24-ea+19 due to known bugs ([JDK-8344372](https://bugs.openjdk.org/browse/JDK-8344372)).
* Resizing the stage via the top/left border causes jitter on the opposite side ([JDK-8347155](https://bugs.openjdk.org/browse/JDK-8347155)).
This project is available on Maven Central:
```
com.techsenger.stagepro
stagepro-core
${stagepro.version}
```
To create a standard Stage, use the code below. To explore all features, check out the examples in the sampler.
```
@Override
public void start(Stage stage) {
var controller = new StandardStageController(stage, 800, 600);
var content = new VBox(...);
controller.setContent(content);
stage.show();
}
```
To build the library use standard Git and Maven commands:
git clone https://github.com/techsenger/stagepro
cd stagepro
mvn clean install
To run the sampler execute the following commands in the root of the project:
cd stagepro-sampler
mvn javafx:run
Please note, that debugger settings are in `stagepro-sampler/pom.xml` file.
Techsenger StagePro is licensed under the Apache License, Version 2.0.
We welcome all contributions. You can help by reporting bugs, suggesting improvements, or submitting pull requests
with fixes and new features. If you have any questions, feel free to reach out — we’ll be happy to assist you.
You can support us financially through [GitHub Sponsors](https://github.com/sponsors/techsenger). Your
contribution directly helps us keep our open-source projects active, improve their features, and offer ongoing support.
Besides, we offer multiple sponsorship tiers, with different rewards.