【发布时间】:2014-10-07 06:15:53
【问题描述】:
我在“JScroll”窗格中添加了一个“JTable”。我想在不更改“JTable”模型的情况下显示“JTable”中每一行的行号。
以下链接是一个很好的解决方案,可以解决我的行号问题。 LineNumber Solution 然而,行号列被添加到整个滚动窗格高度。即使 JTable 没有行,或者只有 1 行,这个额外的空白灰色列会显示滚动窗格的整个高度。我尝试更改 ScrollPane 高度、表格高度所有内容。似乎没有什么可以使行号列与当前表格行一样高。
您能否建议根据表格行设置此行号列高度并根据添加或删除的新行增加/减少高度?
【问题讨论】:
-
修改代码听听Table有多少项,然后只画那么多灰线区域?这可能吗?
-
@NESPowerGlove 是的,我试图从模型中获取行号。然后将高度设置为该尺寸。但它不知何故不起作用。我通过使用以下得到了高度: Rectangle tblRect = table.getCellRect(table.getModel().getRowCount()-1, 0, false); //获取表格尺寸
-
好吧,我没有看太多该网站上的代码,但我想它是从 1 循环到 n 来创建这些行号,所以没有地方可以停下来循环不是在 n 处,而是在表中的项目数处?
-
它确实循环遍历 table.getRowCount() 项目数,以添加正确的行号。问题不在于行号,因为它们仅在预期的表行数之前生成。但问题是即使表有 0 行,也会添加 lineNumber 列(只是空白列)。并且为看起来很糟糕的 JScrollPane 的整个高度添加了行号列。 (如果我有更高的声誉,我会发布一个屏幕截图。)我只想绘制行 Number Column 直到表格高度,而不是整个 ViewPort 大小。
标签: java swing jtable jscrollpane