package application; import java.io.IOException; import java.util.prefs.BackingStoreException; import javafx.application.Application; import javafx.stage.Stage; import javafx.stage.StageStyle; import javafx.scene.Node; import javafx.scene.Scene; import javafx.scene.layout.Pane; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.fxml.FXMLLoader; public class Main extends Application { double x, y; private void addDragListeners(final Node n, Stage primaryStage) { n.setOnMousePressed((mouseEvent) -> { this.x = n.getScene().getWindow().getX() - mouseEvent.getScreenX(); this.y = n.getScene().getWindow().getY() - mouseEvent.getScreenY(); }); n.setOnMouseDragged((mouseEvent) -> { primaryStage.setX(mouseEvent.getScreenX() + this.x); primaryStage.setY(mouseEvent.getScreenY() + this.y); }); } @Override public void start(Stage primaryStage) { try { Pane root = (Pane) FXMLLoader.load(getClass().getResource("FX.fxml")); Scene scene = new Scene(root, 463, 198); scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); Rectangle rect = new Rectangle(463, 198); rect.setArcHeight(10); rect.setArcWidth(10); root.setClip(rect); primaryStage.setScene(scene); primaryStage.initStyle(StageStyle.TRANSPARENT); scene.setFill(Color.TRANSPARENT); addDragListeners(root, primaryStage); primaryStage.show(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) throws IOException, InterruptedException, BackingStoreException { settings.UserPreferences.getPreferences(); launch(args); } }