I have the following code:
JFrame frame = new JFrame();
JScrollPane scrollPane = new JScrollPane(new panel(with stuff in it));
frame.getContentPane().add(scrollPane);
So the user scrolls a bit and then clicks a link on my panel and then I do a pack(), so I try the following code:
int val = scrollPane.getVerticalScrollBar().getValue();
frame.pack();
scrollPane.getVer开发者_StackOverflow中文版ticalScrollBar().setValue(val);
But this code still returns my scrollBar back to the beginning instead of keeping the position it was originally at before the pack. Any ideas would be appreciated, Thanks!
Try wrapping the setValue() method in a SwingUtilities.invokeLater().
精彩评论