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?
McDowell
See Translucent and Shaped Swing Windows by Kirill Grouchnikov.
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.
Taylor Golden
It is possible.
If your JFrame is a local variable or field:
myJFrame.setUndecorated(true);
If your class extends JFrame:
setUndecorated(true);
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));
trashgod
For a Mac OS X example, see Re-paint problem on translucent frame/panel/component.
来源:https://stackoverflow.com/questions/2533650/transparent-jframe-background