scrollPane остается серым в случайном порядке, когда должен отображать editorPane (html) - PullRequest
1 голос
/ 16 апреля 2009

По какой-то причине моя HTML-страница не отображается на экране 100%, когда должна, это выглядит для меня проблемой синхронизации. Если я удаляю scrollpane и использую только EditorPane, он работает нормально.

Какой код я должен добавить ниже, чтобы заставить экран java-апплета перерисовываться / обновляться, и могу ли я как-то подождать, пока все изображения действительно загрузятся нормально? В настоящее время изображения рисуются немного после того, как текст отображается в графическом интерфейсе.
(серый цвет исчезает, и пропадающий текст появляется, когда я сворачиваю + окно максимизации.)

Я использую SynchronousHTMLEditorKit как m_editorPane.setEditorKitForContentType

private JEditorPane m_editorPane = new JTextPane();
private JScrollPane m_scrollPane = new JScrollPane();
....
JEditorPane.registerEditorKitForContentType( "text/html", "SynchronousHTMLEditorKit" );
m_editorPane.setEditorKitForContentType( "text/html", new SynchronousHTMLEditorKit() );
 m_editorPane.setPage(ResourceLoader.getURLforDataFile(file));
 m_scrollPane.getViewport().add(m_editorPane);
 m_scrollPane.validate();
 m_scrollPane.repaint(); <-- does not seem to solve this

add(m_scrollPane);
///    add(  m_editorPane) <-- this WORKS !!

SynchronousHTMLEditorKit определяется как:

public class SynchronousHTMLEditorKit extends HTMLEditorKit {
    public Document createDefaultDocument(){
        HTMLDocument doc = (HTMLDocument)(super.createDefaultDocument());
        doc.setAsynchronousLoadPriority(-1); //do synchronous load
        return doc;
    }

Ответы [ 2 ]

1 голос
/ 21 апреля 2009

Попробуйте переместить вызовы проверки и перерисовки вниз, после добавления, и вызвать их на контейнере, а не на полосе прокрутки

add(m_scrollPane);
validate();
repaint();
0 голосов
/ 16 апреля 2009

Что произойдет, если вы не используете SynchronousHTMLEditorKit? Ваш код отлично работает для меня без него.

...