我一直有这个问题很长一段时间,我一直无法在互联网上的任何地方找到解决方案。
我有一个 JDialog 作为我的主框架,我需要能够更改窗口的透明度。通常,如果我要在其上调用 setUndecorated(true),这不会是一个问题,但我不想这样做。我希望标题栏出现在系统外观下方的顶部。
有趣的是,在我的 Mac 上,即使 JDialog 仍然是“装饰”的,更改透明度也可以很好地适应系统的外观和感觉。
这是我的 JDialog 的图像,所以你知道我在处理什么:
我需要使用系统外观,但我还需要能够更改窗口的透明度。
当我尝试时,我在 Windows 上得到以下异常:
“线程“AWT-EventQueue-0”中的异常 java.awt.IllegalComponentStateException:对话框已装饰“
如果我将它设置为未装饰,我会丢失顶部的标题栏,这不是一个选项。有人知道解决这个问题的方法吗?