使用 Aqua 外观和感觉禁用 JInternalFrames 周围的阴影

发布于 2024-12-10 18:18:09 字数 128 浏览 1 评论 0原文

在具有本机 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

°如果伤别离去 2024-12-17 18:18:09

在深入研究 OpenJDK 中的 Aqua L&F 代码后,我发现了一个未记录的属性,可以让您更改内部框架的样式。可以通过以下方式删除阴影:

internalFrame.putClientProperty("JInternalFrame.frameType", "normal");

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:

internalFrame.putClientProperty("JInternalFrame.frameType", "normal");

http://hg.openjdk.java.net/macosx-port/macosx-port/jdk/file/087d8f180711/src/macosx/classes/com/apple/laf/AquaInternalFrameUI.java

楠木可依 2024-12-17 18:18:09

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. The AbstractBorder 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文