我知道有很多类似的问题,但不幸的是,它们都是关于在TextArea中自动滚动scrollBar
。
我使用JScrollPane
来模拟JList
:我使用JPanels
向JScrollPane
添加小GridLayout
,并且它们会正确堆叠。
我希望滚动条跟随最后添加的元素(向下),但我无法让它工作。
我尝试调整Text
的一些答案,例如:
.autoScrolls(true);
或
JScrollBar vertical = scollPan.getVerticalScrollBar();
vertical.setValue( vertical.getMaximum() );
甚至一个关于更改updatePolicy的内容,但是对于未绑定到文本区域的JScrollPane没有任何效果,我只能手动滚动它。
vertical.setValue( vertical.getMaximum() );
确实做了一些事情,它向下滚动栏,但只是大约2/3,只是因为我在调用后在scrollPane上添加了.revalidate()
。
有什么想法吗?
答案 0 :(得分:1)
在向面板添加组件后,您需要执行revalidate()
和repaint()
以确保调用布局管理器。
JScrollBar vertical = scollPan.getVerticalScrollBar();
vertical.setValue( vertical.getMaximum() );
然后将上面的代码包装在SwingUtilities.invokeLater()
中,以确保代码被添加到Event Dispatch Thread (EDT)
的末尾,以便在所有布局代码之后执行。