Undecorated JavaFX Scene with implemented move, resize, minimise, maximise, close and Windows Aero Snap controls.
Switch branches/tags
Clone or download
Latest commit 955f14a Nov 11, 2018



Latest Version GitHub contributors HitCount Total Downloads

Undecorated JavaFX Scene with :

1) implemented move

2) resize, minimise, maximise, close

3) Windows Aero Snap controls.

4) Styling Aero Snap window

5) Styling Main window

This project has been forked and further developed from this github repository

Awesome examples

example new window

Donate if you love me

Patreon donate button PayPal donate button

XR3Player is using this Library


Use it with Maven , Gradle etc ... with



> Advanced example (styling AeroSnap Window , spying window maximize status etc ) with ready code for you to run

Main Window -> here

Main Window Controller -> here

> Simple example

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import main.java.com.goxr3plus.fxborderlessscene.borderless.BorderlessScene;

 * Testing the application to see if it works
 * @author GOXR3PLUS
public class Main extends Application {
	public void start(Stage primaryStage) throws Exception {
		BorderPane borderPane = new BorderPane();
		//Create a Top Label
		Label topLabel = new Label("Drag Me :)");
		topLabel.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
		topLabel.setStyle("-fx-background-color:#303030; -fx-text-fill:white; -fx-font-weight:bold;");
		//Close Button
		Button closeButton = new Button("Exit");
		closeButton.setOnAction(a -> primaryStage.close());
		// Constructor using your primary stage and the root Parent of your content.
		BorderlessScene scene = new BorderlessScene(primaryStage, StageStyle.UNDECORATED, borderPane, 250, 250);
		primaryStage.setScene(scene); // Set the scene to your stage and you're done!
		//Close Button
		Button removeDefaultCSS = new Button("Remove Default Corners CSS");
		removeDefaultCSS.setOnAction(a -> scene.removeDefaultCSS());
		HBox hbox = new HBox(removeDefaultCSS,closeButton);
		//remove the default css style
		// Maximise (on/off) and minimise the application:
		// To move the window around by pressing a node:
		// To disable resize:
		// To switch the content during runtime:
		// Check if maximised:
		//Boolean bool = scene.isMaximised();
		// Get windowed* size and position:
		primaryStage.setTitle("Draggable and Undecorated JavaFX Window");
	public static void main(String[] args) {