Is it possible to make a JFrame that has a transparent background and draw an image on it, so only the image will be visible with no border or background?
See Translucent and Shaped Swing Windows by Kirill Grouchnikov.
It is possible.
If your JFrame is a local variable or field:
myJFrame.setUndecorated(true);
If your class extends JFrame:
setUndecorated(true);
Yes, it's possible in many ways. This is one of them:
setUndecorated(true);
setBackground(new Color(1.0f,1.0f,1.0f,0.5f));
4th float (which I set to 0.5f) in Color's constructor is alpha channel. It can be 0.0f - 1.0f depend on transparency you want.
For a Mac OS X example, see Re-paint problem on translucent frame/panel/component.
You should make content pane transparent too.
frame.setUndecorated(true);
frame.getContentPane().setBackground(new Color(1.0f,1.0f,1.0f,0.0f));
frame.setBackground(new Color(1.0f,1.0f,1.0f,0.0f));