JLabel поверх прозрачного окрашенного прямоугольника? - PullRequest
1 голос
/ 08 марта 2011

Я установил фон JWindow полностью прозрачным. Затем я нарисовал скругленный прямоугольник (RGB: 0,0,0,100) в его методе рисования и добавил JLabel в JWindows ContentPane. Но когда я пытаюсь перекрасить JWindow для обновления JLabel, он не удаляет старый Rectangle и старое значение JLabel. В результате мой настраиваемый блок всплывающей подсказки (каким он должен быть) становится менее прозрачным, и вы не можете прочитать содержимое JLabels, поскольку оно перекрывает старые константы.

Есть ли способ решить эту проблему?

Кстати, если я не перекрашиваюсь, он не становится менее прозрачным, но новое содержимое моего JLabel перекрывает старое содержимое, как и при перерисовке.

1 Ответ

1 голос
/ 08 марта 2011

Сначала вы должны переопределить paintComponent вместо paint и позвонить super.paintComponent(g). Вы должны оставить JWindow непрозрачным, потому что компонент на последнем слое очистит старое содержимое. Если все слои будут прозрачными, вы получите мусор на экране.

См. картина с качелями . Возможно, вы действительно хотели создать полупрозрачных окон ?

...