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?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
See Translucent and Shaped Swing Windows by Kirill Grouchnikov.
回答2:
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.
回答3:
It is possible.
If your JFrame is a local variable or field:
myJFrame.setUndecorated(true);
If your class extends JFrame:
setUndecorated(true);
回答4:
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));
回答5:
For a Mac OS X example, see Re-paint problem on translucent frame/panel/component.