我很难弄清楚如何在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上完成吗?
答案 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
中查看有关如何使用它的详细说明它有,