Как создать прозрачную JPanel

1

Я пытаюсь сделать свой JPanel прозрачным, но я просто не могу этого добиться. Я пробовал этот код, но он не работает. Кроме того, какова граница "a" от rgba?

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);
        ;
  • 0
    Границы для альфа-канала («а») обычно составляют от 0,0 до 1,0, где 1,0 непрозрачен. Думайте об этом как процент.
Теги:
swing

2 ответа

1
Лучший ответ

Посмотрите это..

frame.setBackground(new Color(0,0,0,0)); //

//добавление в код

   frame.setUndecorated(true);
   frame.setOpacity(0.5f);

вы можете использовать его для JFrame: на самом деле он устанавливает прозрачный цвет на панель или рамку. Сначала кадр должен быть неотделенным (true).

Вы можете установить его, также устанавливая альфа- значение в 0.

И вот волшебство оракула

  • 0
    Спасибо сработало
  • 0
    У меня была такая же проблема несколько месяцев назад, и когда я нашел страницу, я показал вам, что это было просто решением для многих других проблем, таких как создание окон с формой ....!
1
  1. Ваша JPanel прозрачна, но вы видите JFrame.

    Вы также должны сделать его прозрачным. (JFrame требует frame.setUndecorated(true); будет называться первым).


  1. Границы альфы зависят от конструктора Color который вы используете.

    Существует много перегруженных конструкторов. Тот, который вы используете, ожидает, что int и его границы равны 0-255.

    Конструктор с аргументами float требует ограничений от 0f до 1.0f.

Надеюсь это поможет.
Удачи.

  • 0
    Спасибо, сэр !

Ещё вопросы

Сообщество Overcoder
Наверх
Меню