我希望在JScrollPane中添加一个JEditorPane。当用户点击按钮时,单击侦听器将创建一个textEditor,调用jscrollpane.setViewPort(textEditor),调用textEditor.setText(String)来填充可编辑的文本,并调用jscrollpane.getVerticalScrollBar().setValue(0)。如果你想知道,是的,setText()必须在setViewPort()之后,原因与此主题无关。
问题在于:用户单击按钮后,JScrollPane的视图会滚动到底部。我希望滚动条位于顶部,就像单击侦听器中的最后一行所示。
我打开了调试器,发现令我震惊的是,在单击侦听器结束后(在泵过滤器时),jscrollpane的视口被强制下移。似乎Swing延迟了编辑器/ jscrollpane的填充,直到单击侦听器结束,但首先调用了滚动条命令。因此,出现了不需要的行为。
总之,我想知道是否有干净的解决方案。似乎想要在修改后将滚动窗格滚动到顶部是一个相当常见的要求,因此我假设这是一个解决良好的问题。
谢谢!
问题在于:用户单击按钮后,JScrollPane的视图会滚动到底部。我希望滚动条位于顶部,就像单击侦听器中的最后一行所示。
我打开了调试器,发现令我震惊的是,在单击侦听器结束后(在泵过滤器时),jscrollpane的视口被强制下移。似乎Swing延迟了编辑器/ jscrollpane的填充,直到单击侦听器结束,但首先调用了滚动条命令。因此,出现了不需要的行为。
总之,我想知道是否有干净的解决方案。似乎想要在修改后将滚动窗格滚动到顶部是一个相当常见的要求,因此我假设这是一个解决良好的问题。
谢谢!