Java 如何创建透明的JPanel
我试图使我的JPanel透明,但我就是无法做到这一点。我已经尝试过这个代码,但它不起作用。另外,rgba的“a”的界是什么Java 如何创建透明的JPanel,java,swing,Java,Swing,我试图使我的JPanel透明,但我就是无法做到这一点。我已经尝试过这个代码,但它不起作用。另外,rgba的“a”的界是什么 import java.awt.*; import java.awt.event.*; import java.io.IOException; import javax.swing.*; import javax.swing.plaf.LayerUI; public class Animation extends JPanel implements Runnable
import java.awt.*;
import java.awt.event.*;
import java.io.IOException;
import javax.swing.*;
import javax.swing.plaf.LayerUI;
public class Animation extends JPanel implements Runnable
JButton buton = new JButton("BUTTON!!!! ");
public Animation(){
add(buton);
}
public void paintComponent(Graphics g) {
g.setColor(getBackground());
Rectangle r = g.getClipBounds();
g.fillRect(r.x, r.y, r.width, r.height);
super.paintComponent(g);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
JPanel panel = new Animation();
panel.setOpaque(false);
panel.setBackground(new Color(52, 152, 219,0));
panel.repaint();
frame.add(panel);
frame.setVisible(true);
frame.setSize(1000,400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
;
看这个
frame.setBackground(new Color(0,0,0,0)); //
//添加到代码中
frame.setUndecorated(true);
frame.setOpacity(0.5f);
您可以对JFrame使用相同的设置:实际上是将trasparent颜色设置为panel或frame。必须先取消装饰(true)框架
您也可以将其设置为0
这是
JPanel
是透明的,但是您看到的是JFrame
你也需要让它透明。(JFrame
要求首先调用frame.setUndercorated(true);
)颜色的构造函数
有许多重载构造函数可用。您正在使用的函数需要一个int
,其边界为0-255
具有float
参数的构造函数需要0f到1.0f的边界
祝你好运。alpha通道(“a”)的边界通常为0.0到1.0,其中1.0是不透明的。把它当作一个百分比。几个月前我也遇到过同样的问题,当我找到我展示给你的页面时,它只是许多其他问题的解决方案,比如创建带形状的窗口。。。。!