Я недавно задал вопрос о полупрозрачных компонентах, вызывающих странные артефакты, которые, по-видимому, не обновляются должным образом.Ответ, который я получил, заставил артефакты исчезнуть, но ценой прозрачности.
Решением было для каждого полупрозрачного компонента также вызвать функцию setOpaque (false).Таким образом, Swing знал, что нужно перерисовать фон за этими компонентами.
Однако это произошло за счет прозрачности, которой я пытался достичь.Это привело к тому, что компоненты стали прозрачными.
Предпосылка заключается в следующем: я проектирую графический интерфейс для клиента чата, и запрос функции должен был иметь фон.Я успешно получил фоновую работу, следуя фрагменту кода для расширения класса JPanel, но затем я хотел, чтобы компоненты отображали фон.После установки их прозрачности, остатки обновленных компонентов отображались там, где их не должно было быть.Я пришел сюда и решил мою проблему, но теперь у меня есть новая проблема.Итак, мы здесь.
Итак, вот что я догадался:
- Вызов функции setOpaque (false) для каждого требуемого компонента и НЕ установка полупрозрачного цвета не достигает того, что яхочу.
-Установка полупрозрачного цвета и НЕ вызывая setOpaque (false) позволяет показывать полупрозрачный фон, но вызывает артефакты, возвращая меня на круги своя.
Так что мне нужно немного среднего уровнямежду прозрачным без артефактов и полупрозрачным с артефактами.А именно, я хочу полупрозрачный фон (не полностью прозрачный), в котором нет артефактов.
Похоже, мне нужно переопределить JFrame, чтобы он перекрасил все свои компоненты, независимо от прозрачности.Если только что-то мне не хватает ... вот почему я здесь!
Спасибо!
(Вот ссылка на оригинальный вопрос с картинкой для справки: JavaСвинг - полупрозрачные компоненты, вызывающие артефакты )