-1
我想製作一個帶有不透明子項的透明框架的疊加窗口。我在製作透明窗口時很成功,甚至在添加測試孩子時看到它是否成功也是成功的。但是,只要我用我的paintComponent替換測試代碼...我得到一個白色的背景。有人知道爲什麼一旦添加了組件,JFrame就會失去透明度特性
package blahh;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;;
public class LoadingFrame {
public static void main(String[] args) {
LoadingFrame Class = new LoadingFrame();
Class.frameChar();
}
public void frameChar(){
JFrame frame = new JFrame();
B b = new B();
frame.setUndecorated(true);
frame.setBackground(new Color(0, 0, 0, 0));
frame.setAlwaysOnTop(true);
frame.setPreferredSize(new Dimension(500, 500));
frame.getContentPane().setLayout(new java.awt.BorderLayout());
frame.setLocationRelativeTo(null);
frame.setVisible(true);
//frame.getContentPane().add(new JLabel("test code");
frame.add(b);
frame.pack();
}
public class B extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawRect(0, 0, 100, 100);
}
}
}
你的面板是不透明默認情況下,當你構建它時考慮調用'setOpaque(false)' – MadProgrammer
啊,你知道它的人!你是一個天才。謝謝您的幫助! –