如何设置JScrollPane以仅显示特定数量的行

时间:2012-03-22 11:31:35

标签: java swing jtable jscrollpane

我只需要一张表来显示3行,这些行可以从DB中获得前3个销售产品。表已准备就绪,但是除了3行之外,表中有很大一部分几乎是空的。如何设置此滚动窗格的高度以匹配3行的高度?

解决方案:

table.setPreferredScrollableViewportSize(table.getPreferredSize());

1 个答案:

答案 0 :(得分:8)

这是JTable的Scrollable实现的一个怪癖:它设置了一个任意固定的prefScrollable大小。

你将它取消以使scrollPane回退到使用表的preferredSize:

  

<击> table.setPreferredScrollableViewportSize(空);

修改

outch,@ edran是正确的,这并不总是在核心layoutManagers的核心表中工作(它是一个nice hack in another question :)抱歉混淆。在这里复制他的评论:

table.setPreferredScrollableViewportSize(table.getPreferredSize());

是一个可行的选择,尽管所有关于硬编码大小的常见提示都适用于此。

行为良好的JTable将实现更合理的getPreferredScrollableViewportSize,f.i根据内容计算它。 JXTable(这是表现最好的表,偏向我:-),您可以根据可见行设置pref,就像在列表中一样:

xtable.setVisualRowCount(3);