我需要重新设置JFrame
或JDialog
的半透明边框,在设置窗口的外观和感觉时会出现。
我需要它,因为windows laf不允许你访问标题栏(在边框上)。实际上,我需要将MouseAdapter
应用于JDialog
,以便在拖动/按下/释放时收到通知。在windows laf中,由于您无法访问条形图组件,因此您只能应用ComponentListener
,只有在移动时才会向您发送通知(因此,当用户抓住它时,您不会捕获任何内容但是没有#&# 39; t尚未移动,或者当用户"发布"它时。
因此,我决定使用未修饰的对话框并将监听器应用于我的自定义栏。但是我希望自定义对话框看起来与windows laf完全相同(这意味着我需要重新创建边框)。
我在Graphics2D上没有经验来覆盖paintBorder()
方法,所以我请求你的帮助。
有没有人遇到这个问题,并有一个经过测试的解决方案?
提前谢谢。
答案 0 :(得分:1)
从Java平台标准版6(Java SE 6)更新版本10开始,您可以为Swing应用程序添加半透明和整形窗口。
这意味着您可以让JFrame
模仿带有圆角和透明度的原生窗口。
在您的情况下,您的方法将处于JFrame
级别而不是边框级别,因为边框绘制在JFrame
(或JDialog
之上,就此而言) 。因此,如果JFrame
尚未舍入,则paintBorder()
方法仍将在屏幕的矩形区域上绘制。
从Oracle查看此tutorial,其中包含有形和半透明的JFrame
。