我有这样的情况。我有滚动窗格,其 viewportView 是 JPanel,而 JPanel 的布局为 BoxLayout。在这个面板中,我添加了一个扩展 JPanel 的类,该类包含 JComponents。
因此,在运行应用程序时,JComponents 显示在 JScrollPane 中。这就是我的 ScrollPane 的形成方式。
这里的问题是,当数据超过大约 750 行时,滚动条开始出现问题。用鼠标滚轮上下滚动时,滚动不流畅,中间突然停了又开始,说是有生涩的动作。我的问题是如何在这种情况下获得平滑的鼠标移动。
我的 scrollPane 是这样的
public JScrollPane getScrollPane() {
if (scrollPane == null) {
scrollPane = new JScrollPane();
scrollPane.setSize(new Dimension(1000, 433));
scrollPane.setLocation(new Point(10, 10));
scrollPane.setColumnHeaderView(getHeaderOfRowPanel());
scrollPane
.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scrollPane.setViewportView(getScrollPanel());
scrollPane
.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.getVerticalScrollBar().setUnitIncrement(
unitIncrement);
}
return scrollPane;
}
private JPanel getScrollPanel() {
if (scrollPanel == null) {
scrollPanel = new JPanel();
scrollPanel.setBorder(null);
scrollPanel.setLayout(new BoxLayout(getScrollPanel(),
BoxLayout.Y_AXIS));
}
return scrollPanel;
}
private class RowPanel extends JPanel {
//My components are here ..
//I add this Panel in scrollPanel
}