当它应该显示editorPane(html)时,scrollPane随机保持灰色

时间:2009-04-16 13:25:36

标签: java swing jeditorpane

由于某些原因,我的HTML页面在屏幕上没有显示100%,这对我来说似乎是个时间问题。如果我删除scrollpane并只使用EditorPane就可以了。

我应该在下面添加什么样的代码来强制java applet屏幕重绘/刷新,我能不能等到所有图像真的加载好了?当前在GUI上显示文本后,图像会被略微绘制 (当我最小化+最大化窗口时,灰色消失,缺少文本。)

我使用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 个答案:

答案 0 :(得分:1)

尝试移动验证并在添加后重新调用底部的调用,并在容器上调用它们,而不是滚动窗口

add(m_scrollPane);
validate();
repaint();

答案 1 :(得分:0)

如果您不使用SynchronousHTMLEditorKit会怎样?没有它,你的代码对我来说非常合适。