【发布时间】:2010-11-13 01:22:55
【问题描述】:
我有这个由HTMLEditorKit 支持的JTextPane(包裹在JScrollPane 中)。 JTextPane 的内容是简单的 HTML,其中包含一些使用 img 标签嵌入的图像(本地文件)。问题是当你加载JTextPane 时,加载需要一瞬间,然后它会在页面底部出现滚动条。如果我这样做:
JTextPane text = new JTextPane();
JScrollPane scroll = new JScrollPane(text);
// do some set up...
scroll.getVerticalScrollBar().setValue(0);
它会暂时设置滚动条,然后另一个头(可能是负责加载图像的)出现并将滚动条撞回底部。我尝试添加:
((AbstractDocument)text.getDocument()).setAsynchronousLoadPriority(-1);
但这并没有解决问题。有什么方法可以从text.getDocument() 或text 获取事件,当窗格完成加载时会通知我,以便我可以设置滚动条?另一种方法是我设置另一个线程等待一秒钟左右,然后设置滚动条,但这是一个糟糕的 hack。
你的建议?
【问题讨论】: