Java - 在JPanel中设置不透明度

tes*_*est 16 java jpanel opacity

假设我想让JPanel%20的不透明度可见?我不是指setOpaque(绘制或不绘制)或setVisible(显示或隐藏)......我的意思是让它透视JPanel ..你知道吗?

这可能吗?

cam*_*ckr 22

panel.setBackground( new Color(r, g, b, a) );
Run Code Online (Sandbox Code Playgroud)

您还应该查看Backgrounds With Transparency来了解使用它时可能遇到的任何绘画问题.

  • "a"是不透明度的alpha设置. (6认同)

Osc*_*Ryz 13

使用颜色的alpha属性.

例如:

panel.setBackground(new Color(0,0,0,64));
Run Code Online (Sandbox Code Playgroud)

将创建一个黑色,带有64个alpha(透明度)

结果如下:

样品

这是代码

package test;

import javax.swing.*;
import java.awt.Color;
import java.awt.BorderLayout;

public class See {
    public static void main( String [] args ){
        JFrame frame = new JFrame();
        frame.setBackground( Color.orange );


        frame.add( new JPanel(){{
                        add( new JLabel("Center"));
                        setBackground(new Color(0,0,0,64));
                    }} , BorderLayout.CENTER );
        frame.add( new JLabel("North"), BorderLayout.NORTH);
        frame.add( new JLabel("South"), BorderLayout.SOUTH);

        frame.pack();
        frame.setVisible( true );
    }
}
Run Code Online (Sandbox Code Playgroud)

有了它,它看起来像这样:

setBackground( new Color( 0,0,0 )  ); // or setBackground( Color.black );
Run Code Online (Sandbox Code Playgroud)

替代文字