私はこのような状況にあります。私はviewportViewがJPanelであるスクロールペインを持っていますそしてそのJPanelはBoxLayoutとしてレイアウトを持っています。このパネルでは、JPanelを拡張する1つのクラスを追加し、そのクラスには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
}