我有以下代码:
JFrame frame = new JFrame();
JScrollPane scrollPane = new JScrollPane(new panel(with stuff in it));
frame.getContentPane().add(scrollPane);
所以用户滚动了一下,然后点击我面板上的链接,然后我做了一个pack(),所以我尝试下面的代码:
int val = scrollPane.getVerticalScrollBar().getValue();
frame.pack();
scrollPane.getVerticalScrollBar().setValue(val);
但是这段代码仍然会将我的scrollBar返回到开头,而不是保持它最初位于包之前的位置。任何想法将不胜感激,谢谢!
答案 0 :(得分:3)
尝试在SwingUtilities.invokeLater()中包装setValue()方法。