JScrollPane中的JTable强制在不需要时滚动

时间:2012-06-24 23:08:23

标签: java swing jtable jscrollpane

我在JTable中有一个JScrollPane。如果屏幕显示JTable中的一半,则点击JTable时,JScrollPane会自动滚动显示整行。

如何停止该行为,以便点击不会滚动JScrollPane

谢谢!

1 个答案:

答案 0 :(得分:2)

通过从表的UI委托调用scrollRectToVisible()来强制执行该行为,该委托通常来自BasicTableUI。如果没有提供您自己的代理人,您可以使用setPreferredScrollableViewportSize()Container的高度设为rowHeight的整数倍,如下所示和此example。< / p>

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