使用 Aqua 外观和感觉禁用 JInternalFrames 周围的阴影
在具有本机 Aqua 外观和感觉的 Mac OS X 上,JInternalFrames 有一个阴影,它是框架边框的一部分。当内部框架最大化时,阴影仍然可见并且占用大量空间。
有没有办法消除这个阴影而不切换到另一种外观和感觉?
On Mac OS X with the native Aqua Look and Feel, JInternalFrames have a shadow that is part of the frame border. When the internal frame is maximized, the shadow is still visible and takes a lot of space.
Is there a way to remove this shadow without switching to another look and feel?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在深入研究 OpenJDK 中的 Aqua L&F 代码后,我发现了一个未记录的属性,可以让您更改内部框架的样式。可以通过以下方式删除阴影:
After digging into the Aqua L&F code in OpenJDK I found an undocumented property that let you change the style of an internal frame. Shadows can be removed with this:
http://hg.openjdk.java.net/macosx-port/macosx-port/jdk/file/087d8f180711/src/macosx/classes/com/apple/laf/AquaInternalFrameUI.java
Swing 使创建您自己的 Border 类相对容易。 Swing 集通过提供名为
AbstractBorder
的基类来实现此目的。AbstractBorder
类可以作为为 Swing 组件创建自定义边框的良好起点。您只需使用 setBorder() 方法设置您自己的 Border 对象,即可轻松覆盖组件的 UI 默认边框的安装。
有关更多详细信息,请参阅:了解边框
Swing makes it relatively easy to create your own Border classes. The Swing set does that by providing a base class named
AbstractBorder
. TheAbstractBorder
class can be a good starting point for creating customized borders for Swing components.you can easily override the installation of a UI-default border for the component by simply setting your own Border object using the setBorder() method.
For more details see this : Understanding borders