JTable刷新 [英] JTable refreshing

查看:121
本文介绍了JTable刷新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将JTable与水平和垂直滚动条一起使用.我的JTable在包含数据的行之后有空白空间. 当我打开位于我的桌子下方的面板时,它会隐藏JTable的一部分,并在JTable上显示滚动.这是正常现象,但是我关闭该面板后,没有数据的空白区域变为灰色而不是白色. 仅当我的JTable上具有水平滚动条时,才会发生这种情况.我想我必须强制JTable重新绘制,我在TableHeaderJTable上尝试了resizeAndRepaint(),但是没有用.

I use JTable with horizontal and vertical scrollbars. My JTable has empty space after rows with data. When I open panel that is situated down of my table it hides a part of JTable and scrolling appears on JTable. This is normal behavior, but then I close that panel, empty space without data becomes grey instead of white color. This only happens when I have horizontal scrollbar on my JTable. I suppose I must force JTable to repaint, I tried resizeAndRepaint() on TableHeader and JTable but it didn't work.

请帮助!谢谢! 如果对表执行了任何调整大小操作,则在这里调用resize()代码

Please help! Thanks! Here is resize() code invoked if any resize action was performed on table

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();

推荐答案

默认情况下,JTable不会在垂直方向上填充滚动窗格的视口.尝试致电

By default, a JTable does not fill the viewport of a scrollpane in the vertical direction. Try to call

table.setFillsViewportHeight(true);

在您的桌子上,然后重新粉刷桌子应该可以.

on your table, then repainting the table should work.

这篇关于JTable刷新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆