我只需要一张表来显示3行,这些行可以从DB中获得前3个销售产品。表已准备就绪,但是除了3行之外,表中有很大一部分几乎是空的。如何设置此滚动窗格的高度以匹配3行的高度?
解决方案:
table.setPreferredScrollableViewportSize(table.getPreferredSize());
答案 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);