Some Look and Feels support JFrame decorations, for example the standard one, Metal, does:

You can check whether the LaF supports decorations or not by using LookAndFeel.getSupportsWindowDecorations()
.
By modifying the LaF you can change how frame decorations are painted.
Alternatively, you can create a frame without decorations at all. Call setUndecorated(true)
on a frame instance:

So you can easily paint whatever you want in the content pane. Yet such window cannot be easily moved, resized, minimized or maximized unless you implement these features yourself.
You can find interesting the article Windows Java tip: How to control window decorations.
I used the following AFrame class:
public class AFrame {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("A Frame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 100);
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
});
}
}
To create frame without border:
- Remove line
JFrame.setDefaultLookAndFeelDecorated(true);
- Add line
frame.setUndecorated(true);
Update: I found series of articles on how add frame decorations to Nimbus Look and Feel:
The frame from the 3rd step looks this way:
Nimbus Look and Feel frame decorations: 3rd step rendering http://weblogs.java.net/sites/default/files/ThirdStep.png
You can use the code in these articles as the base to implement your own frame decorations.