SWT ブラウザ ウィジェットで HTML を表示しています。コンテンツの最後にロギング メッセージを追加していて、常に下部が表示されるようにしたいと考えています。現在、コンテンツにテキストを追加するたびに、最初に新しいテキストを設定します。
browser.setText(content);
次に、JavaScript を使用してブラウザ ウィジェットを下にスクロールします。
browser.execute("window.scrollTo(0,100000);");
これに関する問題は、テキストを設定すると、ウィジェットがスクロールダウンする前に再び上部に切り替わるため、多くのメッセージをすばやく追加すると、ほとんどの場合、ブラウザーウィジェットが上部を表示し、切り替え時にちらつきます。ボトム。これにより、下部に記録されている内容を追跡できなくなります。
ツリー ビューアーを使用して Eclipse プラットフォームのすべての利便性を得ることができることは承知していますが、アプリの Swing バージョンもあり、どちらも同じ HTML と CSS プレゼンテーションを使用する必要があります。
理想的には、Swing コンポーネントを埋め込むことは避けたいのですが、これを可能にするものがあれば、喜んでお知らせします。JScrollPane 内の JEditorPane で試してみました。エディター キットの read メソッドを使用してコンテンツに追加します。
editorPane.getEditorKit().read(/*...*/);
そして、このように下にスクロールします:
editorPane.setCaretPosition(editorPane.getDocument().getLength());
これは、スタンドアロンの Swing アプリでは非常にスムーズに機能しますが、Eclipse に組み込まれているとちらつき、HTML コンテンツの高速な更新についていけません。
今のところ、これを Eclipse 内でスムーズに動作させる唯一の方法は、Browser ウィジェットのコンテンツに追加するのではなく先頭に追加することですが、新しいメッセージを上部ではなく下部に追加することを強くお勧めします。