JTable刷新 [英] JTable refreshing
问题描述
我将JTable与水平和垂直滚动条一起使用.我的JTable在包含数据的行之后有空白空间.
当我打开位于我的桌子下方的面板时,它会隐藏JTable的一部分,并在JTable上显示滚动.这是正常现象,但是我关闭该面板后,没有数据的空白区域变为灰色而不是白色.
仅当我的JTable上具有水平滚动条时,才会发生这种情况.我想我必须强制JTable重新绘制,我在TableHeader
和JTable
上尝试了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屋!