我正在 SWT 浏览器小部件中查看 HTML。我将日志消息附加到内容的末尾,并希望始终保持底部可见。目前,每当我将文本附加到内容时,我首先设置新文本:
browser.setText(content);
然后我通过 JavaScript 向下滚动浏览器小部件:
browser.execute("window.scrollTo(0,100000);");
这样做的问题是,当我设置文本时,小部件在向下滚动之前再次切换到顶部,所以当我快速附加大量消息时,浏览器小部件大部分时间都显示顶部,切换到时偶尔会闪烁底端。这使得无法跟踪底部记录的内容。
我知道我可以使用树查看器并获得 Eclipse 平台的所有便利,但也有一个 Swing 版本的应用程序,两者都应该使用相同的 HTML 和 CSS 表示。
理想情况下,我想避免嵌入 Swing 组件,但如果有一个允许这样做,我会很高兴听到它。我已经在 JScrollPane 中使用 JEditorPane 进行了尝试,通过编辑器工具包的读取方法附加到内容:
editorPane.getEditorKit().read(/*...*/);
然后像这样向下滚动:
editorPane.setCaretPosition(editorPane.getDocument().getLength());
这对于独立的 Swing 应用程序来说非常顺利,但是嵌入在 Eclipse 中它会闪烁并且跟不上 HTML 内容的快速更新。
现在,我可以在 Eclipse 中顺利完成这项工作的唯一方法是在浏览器小部件的内容之前添加而不是添加,但我真的更喜欢在底部添加新消息,而不是在顶部。