我在 JScrollPane
中有一个 JTable
。如果屏幕显示 JTable
中的半行,则单击 JTable
时,JScrollPane
会自动滚动以显示整行。
如何停止该行为,以便单击不会滚动 JScrollPane
。
谢谢!
最佳答案
通过从表的 UI 委托(delegate)(通常派生自 BasicTableUI
)调用 scrollRectToVisible()
来强制执行该行为。如果缺少自己的委托(delegate),您可以使用 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));
关于java - JScrollPane 中的 JTable 在不需要时强制滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11181911/