Disabling the shadow around JInternalFrames with the Aqua Look and Feel

拈花ヽ惹草 提交于 2019-12-11 08:52:26

问题


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?


回答1:


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




回答2:


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



来源:https://stackoverflow.com/questions/7838084/disabling-the-shadow-around-jinternalframes-with-the-aqua-look-and-feel

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!