I wanted a JDialog/JFrame that looks better than the standards ones, so I ended up coding these classes : DialogWithDropShadow/FrameWithDropShadow , and yes something I am really bad at is naming.
They are JDialog / JFrame with round corner and drop shadow.
It’s JDialog/JFrame which has been set non opaque using the WindowsUtils class( wrapper around AWTUtilities + some other methods). It’s the custom content pane that deal with painting the background+shadow, and the layered pane is used to position the title bar
Under SubstanceDustCoffeeLookAndFeel
under metal LAF
Title bar
For the dialog you can choose to have (default value) or not the close button using the following constructor
DialogWithDropShadow (Window frame, boolean draggable, boolean withCloseButton)
or the setter
setWithCloseButton(boolean)
If the close button is not visible and that the title is empty there will be not y offset.
Background
You can change the background color using either getContentPane().setBackground(Color)
or setContentPaneBackground(Paint)
Fade in / Fade out
This window can be shown or hidden using a fade in/fade out animation with the 2 followings methods:
startShowAnim()
startHideAnim()
Those 2 methods in fact only call WindowFadeInManager.fadeIn/fadeout
WindowFadeInManager is a utility class used to fade in or fade out windows, you can use it on any window, but you will need at least java 6 update 10 to use this feature, if you don’t, it won’t crash, it will just setVisible true/false on the given window
Resizable
By default they are resizable, it uses com.jidesoft.swing.Resizable behind the scene to make it resizable, just call setResizable(false) to remove this default behavior.
Draggable
Both dialog and frame are draggable by default, not only on the title bar, from anywhere if the mouse event is not catched by another component. draggable class
You can find the source code here
dialog under substance
frame under substance
dialog under metal
frame under metal
hi. do you still have the source code? the link is dead
ReplyDelete