{"id":13777213,"url":"https://github.com/goxr3plus/FX-BorderlessScene","last_synced_at":"2025-05-11T11:32:59.169Z","repository":{"id":45912932,"uuid":"109039812","full_name":"goxr3plus/FX-BorderlessScene","owner":"goxr3plus","description":"💠 Undecorated JavaFX Scene with implemented move, resize, minimise, maximise, close and Windows Aero Snap controls.","archived":false,"fork":false,"pushed_at":"2023-11-17T05:15:42.000Z","size":113,"stargazers_count":140,"open_issues_count":10,"forks_count":31,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-02-13T10:07:39.737Z","etag":null,"topics":["aero-snap","close","javafx-undecorated-window","linux","mac","maximize","minimize","windows"],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/goxr3plus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":null,"patreon":"GOXR3PLUSTUDIO","open_collective":null,"ko_fi":"goxr3plusstudio","tidelift":null,"custom":"https://www.paypal.me/GOXR3PLUSCOMPANY"}},"created_at":"2017-10-31T18:56:39.000Z","updated_at":"2024-01-29T23:16:45.000Z","dependencies_parsed_at":"2024-01-13T07:26:07.830Z","dependency_job_id":"447fb390-1635-4826-8d8d-8c6e7304259a","html_url":"https://github.com/goxr3plus/FX-BorderlessScene","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goxr3plus%2FFX-BorderlessScene","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goxr3plus%2FFX-BorderlessScene/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goxr3plus%2FFX-BorderlessScene/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goxr3plus%2FFX-BorderlessScene/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/goxr3plus","download_url":"https://codeload.github.com/goxr3plus/FX-BorderlessScene/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225043067,"owners_count":17411924,"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":["aero-snap","close","javafx-undecorated-window","linux","mac","maximize","minimize","windows"],"created_at":"2024-08-03T18:00:39.565Z","updated_at":"2024-11-17T13:30:33.302Z","avatar_url":"https://github.com/goxr3plus.png","language":"CSS","funding_links":["https://patreon.com/GOXR3PLUSTUDIO","https://ko-fi.com/goxr3plusstudio","https://www.paypal.me/GOXR3PLUSCOMPANY","https://ko-fi.com/Q5Q3WBIC","https://patreon.com/preview/8adae1b75d654b2899e04a9e1111f0eb"],"categories":["Libraries, Tools and Projects"],"sub_categories":[],"readme":"[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/Q5Q3WBIC)\n\n---\n\n\u003ch3 align=\"center\" \u003e FX-BorderlessScene ( Library )\u003c/h3\u003e\n\u003cp align=\"center\"\u003e \n💠 \n\u003c/p\u003e\n\u003cp align=\"center\"\u003e \n\u003csup\u003e\n\u003cb\u003e Undecorated JavaFX Scene with implemented move, resize, minimise, maximise, close and Windows Aero Snap controls. \u003c/b\u003e\n\u003cb\u003e Implement any style you want for your JavaFX application using custom css or default . \u003cb\u003e\n\u003c/sup\u003e\n\u003c/p\u003e\n\n--- \n\n[![Latest Version](https://img.shields.io/github/release/goxr3plus/FX-BorderlessScene.svg?style=flat-square)](https://github.com/goxr3plus/FX-BorderlessScene/releases)\n[![GitHub contributors][contributors-image]][contributors-url]\n[![HitCount](http://hits.dwyl.io/goxr3plus/FX-BorderlessScene.svg)](http://hits.dwyl.io/goxr3plus/FX-BorderlessScene)\n[![Total Downloads](https://img.shields.io/github/downloads/goxr3plus/FX-BorderlessScene/total.svg)](https://github.com/goxr3plus/FX-BorderlessScene/releases)\n\n\n[contributors-url]: https://github.com/goxr3plus/FX-BorderlessScene/graphs/contributors\n[contributors-image]: https://img.shields.io/github/contributors/goxr3plus/FX-BorderlessScene.svg\n\n\n\n![java_2019-04-30_17-43-54](https://user-images.githubusercontent.com/20374208/56970311-8b0df380-6b6f-11e9-83f1-65a5e4a03b8a.png)\n\n### Donate if you love me  \n\n\u003ca href=\"https://patreon.com/preview/8adae1b75d654b2899e04a9e1111f0eb\" title=\"Donate to this project using Patreon\"\u003e\u003cimg src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://www.paypal.me/GOXR3PLUSCOMPANY\" title=\"Donate to this project using Paypal\"\u003e\u003cimg src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /\u003e\u003c/a\u003e\n\n## Features\n- **Done ✔️**\n  - Implemented drag and move\n  - resize, minimise, maximise, close\n  - Windows Aero Snap controls.\n  - Styling Aero Snap window\n  - Styling Main window\n- **TODO 🚧**\n  - Multiple Screens Support\n  - Fix lagging on resizing\n\nThis project has been forked and further developed from [this](https://github.com/NicolasSenetLarson/BorderlessScene) github repository\n\n### Use it with Maven , Gradle etc ... with \n\nhttps://jitpack.io/#goxr3plus/FX-BorderlessScene\n\nAdd JitPack on your repositories :\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\nAdd the dependency : \n  \n``` XML\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.github.goxr3plus\u003c/groupId\u003e\n  \u003cartifactId\u003eFX-BorderlessScene\u003c/artifactId\u003e\n  \u003cversion\u003e4.4.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### \u003e Advanced example (styling AeroSnap Window , spying window maximize status etc ) with ready code for you to run \n\nMain Window -\u003e [here](https://github.com/goxr3plus/FX-BorderlessScene/blob/master/src/main/java/com/goxr3plus/fxborderlessscene/application/Main.java)\n\nMain Window Controller -\u003e [here](https://github.com/goxr3plus/FX-BorderlessScene/blob/master/src/main/java/com/goxr3plus/fxborderlessscene/application/MainWindowController.java)\n\n###  Simple example\n\n``` JAVA\nimport javafx.application.Application;\nimport javafx.geometry.Pos;\nimport javafx.scene.control.Button;\nimport javafx.scene.control.Label;\nimport javafx.scene.layout.BorderPane;\nimport javafx.scene.layout.HBox;\nimport javafx.stage.Stage;\nimport javafx.stage.StageStyle;\nimport com.goxr3plus.fxborderlessscene.borderless.BorderlessScene;\n\n/**\n * Testing the application to see if it works\n * \n * @author GOXR3PLUS\n *\n */\npublic class Main extends Application {\n\t\n\t@Override\n\tpublic void start(Stage primaryStage) throws Exception {\n\t\t\n\t\t//BorderPane\n\t\tBorderPane borderPane = new BorderPane();\n\t\t\n\t\t//Create a Top Label\n\t\tLabel topLabel = new Label(\"Drag Me :)\");\n\t\ttopLabel.setMinHeight(50);\n\t\ttopLabel.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);\n\t\ttopLabel.setStyle(\"-fx-background-color:#303030; -fx-text-fill:white; -fx-font-weight:bold;\");\n\t\ttopLabel.setAlignment(Pos.CENTER);\n\t\tborderPane.setTop(topLabel);\n\t\t\n\t\t//Close Button\n\t\tButton closeButton = new Button(\"Exit\");\n\t\tcloseButton.setOnAction(a -\u003e primaryStage.close());\n\t\t\n\t\t// Constructor using your primary stage and the root Parent of your content.\n\t\tBorderlessScene scene = new BorderlessScene(primaryStage, StageStyle.UNDECORATED, borderPane, 250, 250);\n\t\tprimaryStage.setScene(scene); // Set the scene to your stage and you're done!\n\t\t\n\t\t//Close Button\n\t\tButton removeDefaultCSS = new Button(\"Remove Default Corners CSS\");\n\t\tremoveDefaultCSS.setOnAction(a -\u003e scene.removeDefaultCSS());\n\t\t\n\t\t//BorderPane\n\t\tHBox hbox = new HBox(removeDefaultCSS,closeButton);\n\t\thbox.setAlignment(Pos.CENTER);\n\t\thbox.setSpacing(15);\n\t\tborderPane.setCenter(hbox);\n\t\t\n\t\t//remove the default css style\n\t\t//scene.removeDefaultCSS();\n\t\t\n\t\t// Maximise (on/off) and minimise the application:\n\t\t//scene.maximizeStage();\n\t\t//scene.minimizeStage();\n\t\t\n\t\t// To move the window around by pressing a node:\n\t\tscene.setMoveControl(topLabel);\n\t\t\n\t\t// To disable resize:\n\t\t//scene.setResizable(false);\n\t\t\n\t\t// To switch the content during runtime:\n\t\t//scene.setContent(yourNewParent);\n\t\t\n\t\t// Check if maximised:\n\t\t//Boolean bool = scene.isMaximised();\n\t\t\n\t\t// Get windowed* size and position:\n\t\t//scene.getWindowedSize();\n\t\t//scene.getWindowedPosition();\n\t\t\n\t\t//Show\n\t\tprimaryStage.setTitle(\"Draggable and Undecorated JavaFX Window\");\n\t\tprimaryStage.show();\n\t\t\n\t}\n\t\n\tpublic static void main(String[] args) {\n\t\tlaunch(args);\n\t}\n\t\n}\n\n```\n\n### [XR3Player](https://github.com/goxr3plus/XR3Player) is using this Library \n| Video|\n|:-:|\n| [![First](https://user-images.githubusercontent.com/20374208/48313813-34fdc180-e5ca-11e8-9da7-c6148dc0cbe5.png)](https://www.youtube.com/watch?v=7Hai7cavmUY)  |\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoxr3plus%2FFX-BorderlessScene","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoxr3plus%2FFX-BorderlessScene","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoxr3plus%2FFX-BorderlessScene/lists"}