0

(html を使用して) 画像を投稿できるチャット アプリケーションを作成しています。通常のテキストの場合、これは非常にうまく機能しますが、メッセージを受信するたびに画像をリロードする必要があり、画像の読み込みが完了する前にスクロールペインが下にスクロールするように見え、部分的にしか下にスクロールされません。別のスレッドから常にスクロールダウンしようとしましたが、これはうまくいかないようです。そのため、画像オブジェクトの実際のサイズは表示されず、実際の画像の前にロードされた小さな「プレースホルダー」の写真のみが表示されると思いますか?

public void addMessage(String sender, String msg) throws BadLocationException, IOException{

    pane.setEditorKit(kit);
    pane.setDocument(doc);

    kit.insertHTML(doc, doc.getLength(), "<b>[" + sender + "]</b> " + msg, 0, 0, null);
    pane.setCaretPosition(pane.getDocument().getLength());
}

これを回避する方法はありますか?

4

1 に答える 1

1

画像オブジェクトの実際のサイズは表示されず、実際の画像の前にロードされた小さな「プレースホルダー」の写真のみが表示されると思いますか?

pane.setCaretPosition(pane.getDocument().getLength());

そのコードを でラップしてSwingUtilties.invokeLater()、コードが EDT の最後に追加されるようにしてください。コードの実行時にドキュメントが適切に更新されることを願っています。

スタイル付きの属性を持つ通常のテキストを使用することも検討します: https://stackoverflow.com/a/32235020/131872。HTML を使用したテキスト文字列の適切なフォーマットについて心配するよりも、属性を操作する方が簡単だと思います。

于 2015-08-27T15:37:39.863 に答える