1

在具有原生 Aqua 外观的 Mac OS X 上,JInternalFrames 有一个阴影,它是框架边框的一部分。当内部框架最大化时,阴影仍然可见并且占用大量空间。

有没有办法在不切换到另一种外观和感觉的情况下消除这种阴影?

4

2 回答 2

3

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

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

于 2011-10-30T20:22:15.013 回答
1

Swing 使创建自己的 Border 类变得相对容易。Swing 集通过提供一个名为AbstractBorder. 该类AbstractBorder可以作为为 Swing 组件创建自定义边框的良好起点。

您只需使用 setBorder() 方法设置您自己的 Border 对象,即可轻松覆盖组件的 UI 默认边框的安装。

有关更多详细信息,请参阅:了解边界

于 2011-10-20T15:27:16.827 回答