JTable在View中显示和更新行号

时间:2014-08-13 18:41:07

标签: java swing jtable jscrollpane

我有一个可用的JTable'添加到了JScroll'窗格。我想在' JTable'中显示每行的行号。没有改变' JTable'模型。

以下链接是一个很好的解决方案,可以解决我的行号问题。 LineNumber Solution 但是,行号列将被添加到整个滚动窗格高度。即使JTable没有行,也只有1行,这个额外的空白灰色列显示滚动窗格的整个高度。我尝试更改ScrollPane高度,表高度一切。似乎没有什么能使行号列与当前表行一样高。

根据要添加或删除的新行,您能否根据表格行建议使用此行号列高度并增加/减少高度?

2 个答案:

答案 0 :(得分:0)

Row Number Table将行标题基于JTable中的行数。

答案 1 :(得分:0)

我能够解决这个问题。发布其他人的修补程序将来会受益。

我必须先将lineNumber列绘制为白色,以获得scrollPane的整个高度。然后我得到了表格的最后一行及其矩形位置,并仅使用背景颜色绘制了lineNumber列,直到矩形的高度为止。下面是我添加到LineNumberTableRowHeader类的额外代码。

        Rectangle tblRect = table.getCellRect(table.getModel().getRowCount()-1, 0, false); //Getting table dimensions
    super.paintComponent(g);

    g.setColor(Color.WHITE);
    g.fillRect(0, 0, getWidth(), getHeight());

    g.setColor(getBackground());
    g.fillRect(0, 0, getWidth(), tblRect.height+ tblRect.y);