Как рисовать / перекрашивать / рисовать компоненты вне JViewport в моей JScrollpane? - PullRequest
0 голосов
/ 21 февраля 2012

У меня есть класс, который расширяет JFrame и открывает окно (фрейм). Я успешно добавил jpanel и jscrollpane, которые используют эту панель.

У меня есть Jbutton на jpanel, который использует actionlistener и будет вызывать перекрашивание (или paintComponents, в зависимости от того, что вы считаете лучше) каждый раз, когда я нажимаю кнопку.

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

Итак, мой вопрос: как рисовать вне JViewport на панели JScrollpane?

Я тщетно пытался экспериментировать с методами класса Graphics, такими как Graphics.setClip() и JViewport.setScrollMode(JViewport.BACKINGSTORE_SCROLL_MODE) ...

метод setClip() фактически противоположен тому, что я хочу сделать. Он ограничивает область рисования выбранного компонента, когда на самом деле я хочу расширить область, которая будет окрашена, - я хочу нарисовать (и продолжать рисовать) область вне области просмотра.

...