JavaFX vollständig angepasste Fenster?

Ich hätte gerne eine Anwendung, bei der ich das Erscheinungsbild des Fensters vollständig angepasst habe. Bisher habe ich gelernt, dass ich das typische Fensterzeug entfernen kann mit:

class Application extends javafx.application.Application {
  /**
   * Starts the application.
   *
   * @param stage
   */
  override def start(stage: Stage) {
    stage.initStyle(StageStyle.TRANSPARENT)

    // Load the main window view.
    val loader = new FXMLLoader()
    loader.setLocation(getClass.getResource("/com/myproj/application/MainWindow.fxml"))

    val root = loader.load().asInstanceOf[Parent]
    val scene: Scene = new Scene(root, Color.TRANSPARENT)

    stage.setScene(scene)
    stage.show()
  }
}

Alles andere funktioniert einwandfrei, außer dass beim Ziehen des Fensters, Doppelklicken zum Maximieren, Ziehen zum oberen Bildschirmrand unter Windows das Maximieren aktiv sein sollte usw. Die nativen Fensterfunktionen fehlen vollständig.

Kann ich das gesamte Erscheinungsbild des Fensters irgendwie ziemlich einfach anpassen, ohne all diese netten Funktionen zu verlieren?

Ich spreche von etwas wie Adobe Photoshop, das völlig anders aussieht, diese Funktionen jedoch beibehält (oder sie manuell über der Benutzeroberfläche implementiert).

Es wäre ein Anfang, wenn ich zumindest Drag & Window-Schaltflächen für den Anfang implementieren könnte. Ich ziele hier auf Linux, Mac und Windows ab.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage