2011-08-09 1 views
3

Я пытаюсь использовать JScrollPane с заголовком столбца и заголовком строки.JScrollPane показывает графические сбои в заголовке строки. Как этого избежать?

На колонтитуле есть текст. Когда я прокручиваю вниз панель, некоторые графические артефакты появляются на rowheader. Это похоже на то, что нижняя строка пикселей повторяется один раз и снова.

Проблема решена, если я максимизирую и восстанавливаю главное окно, но это не так, как должно быть.

Есть ли способ избежать этого?

+5

Проблема с пользовательским кодом окраски заголовка строки. Отправьте свой [SSCCE] (http://sscce.org), который демонстрирует проблему. – camickr

+3

Догадка: если вы выполняете обычную покраску в заголовке строки, вызываете ли вы метод super в методе рисования? Другими словами, если вы переопределяете краску, вы называете 'super.paint (g)'? а также для paintComponent/super.paintComponent. И я согласен с camickr, пожалуйста, покажите нам SSCCE, если это не поможет. –

+0

Спасибо. Ты прав. В пользовательском коде краски было что-то. Я исправил его, добавив строку, задающую предпочтительный размер компонента. – javier

ответ

0

Я нахожу, что такие глюки обычно вызваны обычными методами paint() или не перекрашивают после внесения изменений.

Во-первых, я всегда называю первую строку в своем пользовательском методе рисования.

super.paint(); or super.paintComponent(g); 

Я также считаю, что эти две линии сохраняют все свежее и актуальное. Они могут занимать много времени, но они решили множество проблем. Обычно я помещаю их в конец кода, который изменяет представление.

this.validate(); 
this.repaint(); 
+2

вращение на симптомах методом случайного вызова метода не рекомендуется - вместо этого найдите ошибку и исправьте ее – kleopatra