2015-08-24 6 views
2

Я хочу, чтобы мой JPanel был полупрозрачным. Эта панель анимирована и имеет движение выпадающего списка. Я использовал конструктор Color(r,g,b,a) для достижения прозрачности, однако прозрачность действует только тогда, когда панель возвращается в исходное положение. Например, когда он движется вниз, он не прозрачен вообще, однако, когда он движется вверх, он спонтанно становится прозрачным. Как исправить эту проблему?Прозрачный JPanel не работает правильно

detailPanel.setBackground(new Color(50,50,50,220)); 
detailPanel.setLayout(null); 
detailPanel.setBounds(0,posY,1200,750); 
+3

Как все другие вопросы, стоящие перед вами на эту тему (извините, но это очень утомительно, чтобы продолжать ее видеть), вы не можете использовать цвет на основе альфа при настройке цвета фона компонента Swing, они могут быть только полностью непрозрачными или полностью прозрачными, иначе менеджер перекраски не будет знать, что он должен рисовать компоненты ниже вас, и вы получите всевозможные странные артефакты. Вместо этого вам нужно сделать компонент полностью прозрачным ('setOpaque (false)') и переопределить его 'paintComponent' и заполнить его прозрачным цветом (поддельные его другими словами) – MadProgrammer

+0

Для [example] (http: // stackoverflow. ком/вопросы/31526190/JFrame-с-фона изображения-и-JPanel/31527567 # 31527567) – MadProgrammer

ответ

3

Заканчивать Backgrounds With Transparency причину проблемы (вы не можете использовать прозрачный цвет на непрозрачном фоне) и несколько решений, чтобы исправить эту проблему:

  1. сделать компонент не -opaque и краски фона себя
  2. использовать AlphaContainer класс так, что он может сделать картину фона для вас
Смежные вопросы