2012-06-24 34 views

回答

2

该行为通过从表的UI委托中调用scrollRectToVisible()来实施,通常从BasicTableUI派生。您可以使用setPreferredScrollableViewportSize()来填充Container的整数高度为rowHeight的整数高度,如下图所示以及在example中所示。

private static final int N_ROWS = 8; 
private JTable table = new JTable(); 
... 
Dimension d = new Dimension(
    table.getPreferredScrollableViewportSize().width, 
    N_ROWS * table.getRowHeight()); 
table.setPreferredScrollableViewportSize(d); 
add(new JScrollPane(table)); 

image

+2

你知道我想硬编码的大小;-) SetPrefScrollable不是来自任何其他setXXSize的很大的不同。相反,实现表的getPreferredScrollableViewportSize返回合理的f.i.在像可视行/列这样的可配置属性方面(就像JXTable所做的那样:-) – kleopatra

+0

@kleopatra:完全正确,正如讨论的[here](http://stackoverflow.com/q/7229226/230513)以及相关的[示例](http://stackoverflow.com/a/11132778/230513)。 – trashgod