Java - set opacity in JPanel

Let's say I want to make the opacity of a JPanel %20 viewable? I don't mean setOpaque (draw or not draw) or setVisible (show or hide)... I mean make it see-through JPanel.. you know?

Is this possible?

16
задан test 25 August 2010 в 01:27
поделиться

4 ответа

panel.setBackground( new Color(r, g, b, a) );

Вам также следует взглянуть на Фоны с прозрачностью , чтобы понять любые проблемы с рисованием, которые могут возникнуть при использовании этого.

22
ответ дан 30 November 2019 в 16:30
поделиться

Используйте атрибут alpha для цвета.

Например:

panel.setBackground(new Color(0,0,0,64));

Создает черный цвет с 64 альфа (прозрачность)

В результате получается следующее:

sample

Вот код

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 );
    }
}

Без него это выглядит так:

setBackground( new Color( 0,0,0 )  ); // or setBackground( Color.black );

alt text

13
ответ дан 30 November 2019 в 16:30
поделиться

Как насчет переопределения метода paintComponent в JPanel (для этого вам нужно создать подкласс самого JPanel и реализовать свой собственный метод paintComponent) внутри paintComponent, вы можете получить буферизованное изображение компонента, оттуда вы можете управлять альфа-каналом буферизованного изображения и закрашивать его обратно в JPanel. Я так давно покраснел. Все еще ищу код.

0
ответ дан 30 November 2019 в 16:30
поделиться
AWTUtilities.setWindowOpacity(aWindow, aFloat);

Где aWindow - это компонент Swing, а aFloat - это непрозрачность.

3
ответ дан 30 November 2019 в 16:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: