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