Прозрачная JEditorPane в JScrollPane поверх фона JPanel - PullRequest
4 голосов
/ 16 июня 2011

Если я переместу JScrollPane так, чтобы он был перед и частично закрывал JPanel, то у JEditorPane внутри JScrollPane возникли проблемы с рисованием.Он неправильно перекрашивает фон JPanel.Таким образом, у вас возникают проблемы с рисованием экрана при прокрутке.

Я пробовал перекрытие, используя следующие методы - JScrollPane внутри JPanel - JScrollPane, частично охватывающий JPanel с использованием FreeLayout (NetBeans GUI Builder) - JScrollPane, частично охватывающий JPanel с использованиемJLayeredPane

Прямо сейчас у JPanel есть сплошной фон, но я увеличу его до градиента, как только у меня будет работать сплошной фон.

Как мне заставить JEditorPane вызыватьобрезанный фон из JPanel?

Я делаю его прозрачным, используя jEditorPane.setBackground(new Color(0,0,0,0))

Я пытался использовать setOpaque(false), как вы сделали бы для панели, но это просто возвращаетфон по умолчанию, если вы делаете это для JEditorPane.

Оригинальный вопрос от сотрудника: https://stackoverflow.com/questions/6364460/jframe-screen-paint-issues-when-using-transparency

Первоначальный вопрос не был так хорошо написан и не выгляделчтобы получить хорошие ответы.

Ответы на предложения вопросов коллег:

  • "Попробуйте с setOpaque (false); insteобъявление setBackground (новый цвет (0,0,0,0)); " не решил проблему.
  • "попробуйте добавить validate () после пакета ()" не решил проблему.
  • "paintваше фоновое изображение в JViewport " не будет работать, потому что фон должен выходить за пределы JScrollView, а также распространяться за другими компонентами
  • " изменить графическую композицию в paint делегата пользовательского интерфейса paint () " Если это решит проблему, я хотел бы знать, как это сделать.

1 Ответ

5 голосов
/ 16 июня 2011

Класс Background Panel содержит код, который пытается сделать все компоненты непрозрачными, чтобы фон просвечивал.

Редактировать:

Если вы хотите игратьс прозрачным фоном, тогда вы можете проверить Фоны с прозрачностью для объяснения проблемы и нескольких решений.

В этом случае BackgroundPane является более простым решением.

...