问题
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.getVerticalScrollBar().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!
回答1:
Try wrapping the setValue() method in a SwingUtilities.invokeLater().
来源:https://stackoverflow.com/questions/6335651/how-do-i-save-my-jscrollpane-position-after-i-do-a-jframe-pack