我有这个JTextPane
(包裹在JScrollPane
),支持HTMLEditorKit
。 JTextPane
的内容是简单的HTML,其中一些图像(本地文件)使用img标签嵌入。问题是,当你加载JTextPane
时,它需要一瞬间加载,然后它出现在页面底部的滚动条。如果我做的:在JScrollPane上设置滚动条
JTextPane text = new JTextPane();
JScrollPane scroll = new JScrollPane(text);
// do some set up...
scroll.getVerticalScrollBar().setValue(0);
它暂时设置滚动条,然后又THEAD(大概也就是负责装载图片)来到叩门滚动条回到底部。我试图加入:
((AbstractDocument)text.getDocument()).setAsynchronousLoadPriority(-1);
但是这并没有解决它。有没有办法从text.getDocument()
或text
得到一个事件,当窗格加载完成后会通知我,这样我就可以设置滚动条了?另一种方法是我建立另一个线程等待一秒钟左右,然后设置滚动条,但这是一个不好的破解。
您的建议?
Swing应用程序依赖于一个线程调用事件分派线程来控制所有GUI操作。如果需要,您可以解决此问题,但我现在正在执行的所有工作都在“事件调度线程”上。这可以被认为是一种选择,但可能和我在我的问题中提出的一样糟糕。但我会记住它。 – twolfe18 2009-07-22 16:03:39
ImageObserver可能会工作... – 2009-07-22 16:06:39