{"id":15055683,"url":"https://github.com/oshan96/customstage","last_synced_at":"2025-08-20T06:33:16.886Z","repository":{"id":54943467,"uuid":"124767703","full_name":"Oshan96/CustomStage","owner":"Oshan96","description":"A JavaFX UI framework to create fully customized undecorated windows","archived":false,"fork":false,"pushed_at":"2021-10-17T16:35:57.000Z","size":388,"stargazers_count":196,"open_issues_count":8,"forks_count":18,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-02-13T10:03:39.928Z","etag":null,"topics":["api","customstage","framework","java","javafx","javafx-frameworks","javafx-library","jitpack","stage","tool","undecorated-stage","undecorator","wiki"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Oshan96.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-11T14:59:57.000Z","updated_at":"2024-01-18T18:27:55.000Z","dependencies_parsed_at":"2022-08-14T07:10:37.295Z","dependency_job_id":null,"html_url":"https://github.com/Oshan96/CustomStage","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oshan96%2FCustomStage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oshan96%2FCustomStage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oshan96%2FCustomStage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oshan96%2FCustomStage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Oshan96","download_url":"https://codeload.github.com/Oshan96/CustomStage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230400616,"owners_count":18219831,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","customstage","framework","java","javafx","javafx-frameworks","javafx-library","jitpack","stage","tool","undecorated-stage","undecorator","wiki"],"created_at":"2024-09-24T21:45:37.648Z","updated_at":"2024-12-19T08:08:42.221Z","avatar_url":"https://github.com/Oshan96.png","language":"Java","funding_links":["https://www.buymeacoffee.com/Oshan96"],"categories":[],"sub_categories":[],"readme":"\u003cdiv style=\"text-align:center;display:block\"\u003e\u003cimg src=\"https://i.imgur.com/kvAwJlm.png\" width=\"250\" height=\"250\"\u003e\u003c/div\u003e\n\n# CustomStage  [![Mentioned in Awesome JavaFX](https://awesome.re/mentioned-badge.svg)](https://github.com/mhrimaz/AwesomeJavaFX)\nA JavaFX undecorated stage which can fully be customized\n\n[![Download](https://api.bintray.com/packages/oshan96/CustomStage/lk.vivoxalabs.customstage/images/download.svg) ](https://bintray.com/oshan96/CustomStage/lk.vivoxalabs.customstage/_latestVersion)\n![Licence(https://img.shields.io/github/license/Oshan96/CustomStage.svg)](https://img.shields.io/github/license/Oshan96/CustomStage.svg)\n[![Total Downloads](https://img.shields.io/github/downloads/Oshan96/CustomStage/total.svg)](https://github.com/Oshan96/CustomStage/releases)\n[![JitPack](https://jitpack.io/v/Oshan96/CustomStage.svg)](https://jitpack.io/#Oshan96/CustomStage)\n[![HitCount](http://hits.dwyl.io/Oshan96/CustomStage.svg)](http://hits.dwyl.io/Oshan96/CustomStage)\n![](https://img.shields.io/badge/Bintray%20Downloads-500%2B-brightgreen.svg)\n\n## Donations\nIf this project is helpful to you and love my work and feel like showing love/appreciation, would you like to buy me a coffee?\u003cbr\u003e\n\u003ca href=\"https://www.buymeacoffee.com/Oshan96\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/default-orange.png\" alt=\"Buy Me A Coffee\" style=\"height: 51px !important;width: 217px !important;\" \u003e\u003c/a\u003e\n\n\u003e An Implementation [See the code in wiki at \"A complete implementation\"](https://github.com/Oshan96/CustomStage/wiki#a-complete-implementation)\n\n![CustomStage Implementation](https://thumbs.gfycat.com/JampackedDetailedJapanesebeetle-size_restricted.gif)\n\n## Additional Tools provided (After v1.3.0)\n- [FileLoader](https://github.com/Oshan96/CustomStage/blob/master/src/main/java/lk/vivoxalabs/scenemanager/tools/FileLoader.java)\n- [SceneManager](https://github.com/Oshan96/CustomStage/blob/master/src/main/java/lk/vivoxalabs/scenemanager/SceneManager.java)\n\n\u003e ## Checkout the [CustomStage Wiki][wiki] for more examples and documentation.\n\n## Using CustomStage ? \n\n- **Fork the repository** and update with this readme's [Projects using CustomStage](#projects-using-customstage) section in the following format adding your project details and do a **_Pull Request!_**\n\n\u003e Project_Name : Brief_Description\n\n## Projects using CustomStage\n- [RentLio](https://github.com/Shehanka/RentLio) : This is a vehicle reservation system. Which is made with JavaFX and also using hibernate and RMI.\n\n## Overview\nThis CustomStage is a JavaFX undecorated Stage. To put it simple, CustomStage is a Window and you can add different views (FXML files)\nto the window (like changing the scene of the window) as you prefer.\nThe basic problem making the Stage \"Undecorated\" is that you will not be able to,\n  1) Resize the window using mouse.\n  2) Lose the default action buttons.\n  3) Move the window (by dragging) (etc.)\n\nSo, CustomStage will get rid of all of these issues since it includes,\n  1) Window resizing (the ResizeHelper class is used here with minor modifications) -\u003e [ResizeHelper class](https://stackoverflow.com/questions/19455059/allow-user-to-resize-an-undecorated-stage)\n  2) Default action buttons and their behaviour (close, maximize/restore, minimize)\n  3) Window dragging \n  \n\n### What else?\n\n- Window is **_automatically scaled_** as for screen resolution\n- Very **_responsive_**\n- Apart from those, this is called **CustomStage** since it **_can be customized as you wish_**\n\n#### How?\n\n- Easy. You can get your customized Stage using the [**CustomStageBuilder**](src/main/java/lk/vivoxalabs/customstage/CustomStageBuilder.java) class. \n  This class includes all the methods you will need to customize your window.\n\n## How to use?\n\n**Starting from version 1.3.1 CustomStage releases are/will be available through JCenter and MavenCentral**\n\n### Maven \n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003elk.vivoxalabs.customstage\u003c/groupId\u003e\n    \u003cartifactId\u003eCustomStage\u003c/artifactId\u003e\n    \u003cversion\u003e1.3.2\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### Gradle \n\n```\n  dependencies {\n    compile 'lk.vivoxalabs.customstage:CustomStage:1.3.2'\n  }\n```\n\n### Download via Jitpack (Will not be possible for releases after v1.3.1)\n\n- v1.3.1 CustomStage via JitPack (See the releases here : https://jitpack.io/#Oshan96/CustomStage)\n\n### Gradle\n\n\u003e Add jitpack as a repository\n\n```\nrepositories {\n    maven { url 'https://jitpack.io' }\n}\n```\n\n\u003e Add dependancy\n\n```\ndependencies {\n    compile 'com.github.Oshan96:CustomStage:v1.3.1'\n}\n```\n\n### Maven \n\n\u003e Add jitpack as a repository\n\n```xml\n\u003crepositories\u003e\n  \u003crepository\u003e\n    \u003cid\u003ejitpack.io\u003c/id\u003e\n    \u003curl\u003ehttps://jitpack.io\u003c/url\u003e\n  \u003c/repository\u003e\n\u003c/repositories\u003e\n```\n\n\u003e Add dependancy \n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.github.Oshan96\u003c/groupId\u003e\n  \u003cartifactId\u003eCustomStage\u003c/artifactId\u003e\n  \u003cversion\u003ev1.3.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### Or download and add as a dependancy to your project\n- **Binaries** can be found at [**CustomStage binaries**](https://bintray.com/oshan96/CustomStage/lk.vivoxalabs.customstage/_latestVersion)\n\n## How to use a CustomStage?\n\n- An example is provided in [**How to use a CustomStage**](examples/v1_0_0/StageTest.java) for a complete implementation\n\n![CustomStage](https://preview.ibb.co/mJrs2x/Custom_Stage.png)\n\n- To achieve transparency, see [**Transparent CustomStage**](examples/v1_0_0/TransparentStage.java)\n\n![Transparent CustomStage](https://preview.ibb.co/bWvfpc/Transparent.png)\n\n- CustomStage with custom icons for (close,minimize,maximize/restore) buttons [**CustomStage with custom icons**](examples/v1_0_0/CustomIconStage.java)\n\n![CustomStage with custom icons](https://preview.ibb.co/jzJN2x/custom_Icon.png)\n\n## Documentation\nCustomStage API Documentation can be found here : [CustomStage Documentation](https://oshan96.github.io/CustomStage/)\n\n### Any issue detected?\n![:D](https://lh3.googleusercontent.com/SVKzPc8BQlUkxqPY87sn2SGomGAxhkqRHSQDw53EhGGbth2tbebxMtiSmX7MQ3augQ=w300)\n\n**Feel free to post issues in \"Issues\" for further improvements** \n\n[imgLogo]: https://i.imgur.com/uV4rDEM.png\n\n[wiki]: https://github.com/Oshan96/CustomStage/wiki\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foshan96%2Fcustomstage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foshan96%2Fcustomstage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foshan96%2Fcustomstage/lists"}