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?
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
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