我知道在java-fx中使窗口透明,你需要将舞台样式设置为stage.initStyle(StageStyle.TRANSPARENT);
。然而,这也将删除任何舞台装饰,所以这不能解决我的问题。
我需要这个的原因是因为我的应用程序需要在某些点使用stage.setAlwaysOnTop();
,但目标系统(centOS)上不支持此功能。该应用程序还需要stage.setIconnified();
,但如果舞台未修饰则无法使用。
任何建议将不胜感激。 谢谢
答案 0 :(得分:0)
简短的回答是“不,你不能”......因为最小化/最大化/关闭按钮是装饰的一部分。没有装饰 - 没有按钮。这本身就是一个矛盾。
如果您需要这些按钮的功能,则必须创建自己的按钮作为UI的一部分,并模拟装饰按钮的行为。这就是许多应用程序没有默认装饰的情况。
无论如何,如果你想以这种方式操纵窗口行为(保持在顶部/图标化等),你总是需要考虑底层操作系统。任何应用程序(不仅是Java应用程序)只允许干扰窗口管理,只要操作系统窗口系统允许它们这样做。 例如,在各种MS Windows版本中,此时操作系统行为已多次更改。