JTable освежающий - PullRequest
       8

JTable освежающий

1 голос
/ 12 октября 2011

Я использую JTable с горизонтальной и вертикальной полосами прокрутки.Мой JTable имеет пустое место после строк с данными.Когда я открываю панель, которая находится внизу моего стола, она скрывает часть JTable, и на JTable появляется прокрутка.Это нормальное поведение, но затем я закрываю эту панель, пустое пространство без данных становится серым, а не белым.Это происходит только тогда, когда у меня на JTable горизонтальная полоса прокрутки.Я полагаю, я должен заставить JTable перерисовать, я пробовал resizeAndRepaint() на TableHeader и JTable, но это не сработало.

Пожалуйста, помогите!Спасибо!Вот код resize (), вызываемый, если какое-либо действие по изменению размера было выполнено для таблицы

for (int i = 0; i < columsNum; i++){
        TableColumn column = this.getColumnModel().getColumn(i);
        int preferedSize = //current size
        int minimumSize = // min size
        if (minimumSize != ColumnSizeCalculator.UNDEFINED_WIDTH)
            column.setMinWidth(minimumSize);            
        column.setPreferredWidth(preferedSize);        
    }   

    this.revalidate();
    this.repaint();

1 Ответ

4 голосов
/ 12 октября 2011

По умолчанию JTable не заполняет область просмотра области прокрутки в вертикальном направлении. Попробуйте позвонить

table.setFillsViewportHeight(true);

на вашем столе, то перекраска таблицы должна работать.

...