我以前用javax.swing.JLabel這樣做透明背景:如何使java.awt.Label背景透明?
lbl.setBackground(new Color(0, 0, 0, 0));
。
但它不適用於java.awt.Label。有沒有簡單的方法來使標籤透明?
更新:
public class SplashBackground extends Panel {
private static final long serialVersionUID = 1L;
private Image image = null;
/**
* This is the default constructor
*/
public SplashBackground() {
super();
initialize();
}
/**
* This method initializes this
*
*/
private void initialize() {
image = Toolkit.getDefaultToolkit().createImage(getClass().getResource("/splash/splash.jpg"));
this.setLayout(null);
}
@Override
public void paint(Graphics g) {
super.paint(g);
if(image != null) {
g.drawImage(image, 0,0,this.getWidth(),this.getHeight(),this);
}
}
}
和
lbl= new Label();
lbl.setBackground(new Color(0, 0, 0, 0));
splashBackground = new SplashBackground();
splashBackground.add(appNameLabel, null);
不知道爲什麼你的JLabel需要設置它的背景,因爲默認情況下它不是不透明的,所以你可以將它的背景設置爲任何東西,它將是透明的。回到你的問題:爲什麼AWT而不是Swing呢? –
@hovercraft,不知道我怎麼錯過了你的評論,只是在我做了我的3個小時之前,+1。 – camickr
@Hovercraft Full Of Eels:我認爲這是因爲我將標籤放置在自定義面板中(請參閱問題中的更新)。 AWT,因爲它加載速度更快。這就是飛濺窗口。這是一個「學習」項目。 – bancer