与装饰的javafx透明窗口背景

时间:2014-05-10 03:30:40

标签: java javafx-2

我很难弄清楚如何在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上完成吗?

2 个答案:

答案 0 :(得分:0)

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

  @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); 
}

答案 1 :(得分:0)

您可以使用this库。它是一个完全可定制的JavaFx Stage(CustomStage)。您可以在此CustomStage Wiki

中查看有关如何使用它的详细说明

它有,

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