2009-04-16 4 views
1

Pour une raison quelconque, ma page HTML n'apparaît pas à 100% à l'écran quand elle le devrait, cela ressemble à un problème de timing. Si je supprime scrollpane et que j'utilise juste EditorPane cela fonctionne bien.scrollPane reste gris au hasard quand il devrait afficher editorPane (html)

Quel type de code devrais-je ajouter ci-dessous pour forcer le redraw/refresh de l'écran de l'applet java et puis-je attendre jusqu'à ce que toutes les images soient vraiment chargées? Actuellement, les images sont dessinées un peu après que le texte soit visible sur l'interface graphique.
(le gris disparaît et texte manquant apparaît lorsque je réduis + agrandir la fenêtre.)

J'utilise SynchronousHTMLEditorKit comme 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 est défini comme:

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

Qu'est-ce que SynchronousHTMLEditorKit? – willcodejavaforfood

+0

Je l'ai ajouté à la question ci-dessus, son forçage de charge synchrone – Tom

+0

Hmm, je viens de l'essayer avec SynchronousHTMLEditorKit (ci-après dénommé SHTMLEK), et je n'ai toujours eu aucun problème. Est-ce que vous chargez plus d'une page à la fois? –

Répondre

0

Qu'est-ce que arrive si vous n'utilisez pas un SynchronousHTMLEditorKit? Votre code fonctionne parfaitement pour moi sans cela.

+0

fonctionne plutôt bien sans SynchronousHTMLEditorKit, mais malheureusement, parfois IMAGES n'apparaissent pas avant de déplacer un peu la souris le panel. un moyen de forcer le redessin de l'image? – Tom

1

Essayez de déplacer la validate et repeindre appels au fond, après l'ajout, et les appeler sur le récipient, pas le scrollpane

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