与装饰的javafx透明窗口背景

我很难弄清楚如何在javafx中为应用程序窗口创建透明背景。 scene.setFill(null)似乎只适用于stage.initStyle(StageStyle.TRANSPARENT)setFill文件说

既支持绘制无背景的空值又支持具有透明度的绘制,但其后面绘制的内容将取决于平台。

但这对我没有意义。 它只在StageStyle.TRANSPARENT工作(在Windows 8上),它删除了退出按钮,这是我仍然想要的。

我在这里查看了http://www.adam-bien.com/roller/abien/entry/completely_transparent_windows_stage_in和一些问题。

这可以在Windows上完成吗?

我一直在修改类似的设置,这对我有用:

  @Override public void start(Stage primaryStage) throws Exception{ Parent root = FXMLLoader.load(getClass().getResource("sample.fxml")); primaryStage.setTitle("Hello World"); primaryStage.initStyle(StageStyle.TRANSPARENT); primaryStage.setOpacity(0.5); primaryStage.setFullScreen(true); Scene scene = new Scene(root, 300, 275); primaryStage.setScene(scene); scene.getStylesheets().add(Main.class.getResource("main.css") .toExternalForm()); primaryStage.show(); } 

……和css

 .root { -fx-background-color: rgba(0,0,0,0.5); } 

您可以使用此库。 它是一个完全可定制的JavaFx Stage(CustomStage)。 您可以在此CustomStage Wiki中查看有关如何使用它的详细说明

它有,

  • 窗口resize
  • 默认操作按钮及其行为(关闭,最大化/恢复,最小化)
  • 窗口拖动
  • 窗口会根据屏幕分辨率自动缩放
  • 非常敏感
  • 风格化
  • 可以实现透明度
  • 内置导航窗格和抽屉
  • 等等