JEditorPane qui s'emmêle ? [RESOLU]

JEditorPane qui s'emmêle ? [RESOLU] - Java - Programmation

Marsh Posté le 25-02-2003 à 15:36:16    

voilà, je génère une page HTML , et je demande de l'afficher dans un JEditorPane. je regarde la page avec un browser, et c'est nickel... puis dans le JEditorPane :
 
http://membres.lycos.fr/starfox/tmp/bug.jpg
 
la ligne qui déborde est la même que les lignes suivantes... je m'explique. cette ligne ne peut être sélectionnée (elle existe pas), par contre, si je sélectionnes les lignes en dessous de cette ligne, elle se sélectionne... voilà un exemple :
 
http://membres.lycos.fr/starfox/tmp/bug2.jpg
 
pourtant je n'utilise que du HTML 3.2, et je n'utilise pas la fonction setText() qui donne des trucs bizarres. le rendu est comme ça dès la première utilisation du composant (donc pas de documents préexistants)...
 
vous avez déjà eu ce problème et avez trouvé à le résoudre ?
 
merci


Message édité par Predicator le 26-02-2003 à 15:15:18
Reply

Marsh Posté le 25-02-2003 à 15:36:16   

Reply

Marsh Posté le 25-02-2003 à 16:34:08    

ben montre le html [:spamafote]

Reply

Marsh Posté le 25-02-2003 à 17:42:25    

voilà le code :
 

Code :
  1. String html;
  2.     html =
  3.       "<HTML>"
  4.       + "\n\t"
  5.       + "<HEAD>"+"</HEAD>"
  6.       + "\n\t"
  7.       + "<BODY>"
  8.       + "\n\n";
  9.     html +=
  10.       "\t\t"
  11.       + "Nombre de résultats : "+ arrayResult.size()
  12.       + "\n\n";
  13.     html +=
  14.       "\t\t"
  15.       +"<TABLE cellpadding=5>"
  16.       + "\n\t\t\t"
  17.       + "<TR>"
  18.       + "\n\t\t\t\t"
  19.       + "<TD></TD>"
  20.       + "\n\t\t\t\t"
  21.       + "<TD><a href=\"http://www.xxxxx.fr/index.html?tri_acte\">Acte</a></TD>"
  22.       + "\n\t\t\t\t"
  23.       + "<TD><a href=\"http://www.xxxxx.fr/index.html?tri_type\">Type</a></TD>"
  24.       + "\n\t\t\t\t"
  25.       + "<TD><a href=\"http://www.xxxxx.fr/index.html?tri_valeur\">Valeur</a></TD>"
  26.       + "\n\t\t\t"
  27.       + "</TR>"
  28.       + "\n";
  29.     int nb_acte = 1;
  30.     for (int i=0; i<arrayResult.size(); i++)
  31.       {
  32. Object[] tab_obj = (Object[])arrayResult.get(i);
  33. ArrayList arrayChamps = (ArrayList)tab_obj[0];
  34. Annotation annot_acte = (Annotation)tab_obj[1];
  35.      
  36. for (int j=0; j<arrayChamps.size(); j++)
  37.   {
  38.     Annotation annot = (Annotation)arrayChamps.get(j);
  39.     html +=
  40.       "\n\t\t\t"
  41.       + "<TR>"
  42.       + "\n\t\t\t\t"
  43.       + "<TD><a href=\""+ TypeTransformation.intToStringURL(annot_acte.getLabel(),annot.getLabel()) 
  44.       + "\">voir</a></TD>"
  45.       + "\n\t\t\t\t"
  46.       + "<TD>"+ annot.getFatherLabel() +"</TD>"
  47.       + "\n\t\t\t\t"
  48.       + "<TD>"+ annot.getType() +"</TD>"
  49.       + "\n\t\t\t\t"
  50.       + "<TD>"+ annot.getValue() +"</TD>"
  51.       + "\n\t\t\t"
  52.       + "</TR>";
  53.   }
  54. nb_acte++;
  55.       }
  56.     html +=
  57.       "\n\n"
  58.       + "\t\t"
  59.       + "</TABLE>"
  60.       + "\n\t"
  61.       + "</BODY>\n"
  62.       + "</HTML>";
  63.     System.out.println("html : \n" + html);
  64.     return html;


 
et voilà un HTML généré par ce code :
 

Code :
  1. <HTML>
  2. <HEAD></HEAD>
  3. <BODY>
  4.  Nombre de résultats : 1
  5.  <TABLE cellpadding=5>
  6.   <TR>
  7.    <TD></TD>
  8.    <TD><a href="http://www.xxxxx.fr/index.html?tri_acte">Acte</a></TD>
  9.    <TD><a href="http://www.xxxxx.fr/index.html?tri_type">Type</a></TD>
  10.    <TD><a href="http://www.xxxxx.fr/index.html?tri_valeur">Valeur</a></TD>
  11.   </TR>
  12.   <TR>
  13.    <TD><a href="http://www.bidon.fr?label_acte=120144&label_champs=120146">voir</a></TD>
  14.    <TD>120144</TD>
  15.    <TD>Prénoms</TD>
  16.    <TD>Anne</TD>
  17.   </TR>
  18.  </TABLE>
  19. </BODY>
  20. </HTML>


Message édité par Predicator le 25-02-2003 à 17:43:16
Reply

Marsh Posté le 25-02-2003 à 17:45:21    

Deja, ca n'a rien à voir, mais les StringBuffer, c'est bien.


Message édité par R3g le 25-02-2003 à 17:45:45
Reply

Marsh Posté le 25-02-2003 à 17:53:55    

il y en a un derrière... mais ce code (au départ) est celui du mec qui a mis un javax.swing.Timer dans un servlet :sweat:  
 
moi je le reprend, et je m'amuse pas à tout réécrirr... j'améliore juste. déjà tu as pas vu le code d'avant, 60% des balises non fermées  :heink:

Reply

Marsh Posté le 25-02-2003 à 17:55:07    

ben ouais mais montre le généré qui fait foirer ton truc....

Reply

Marsh Posté le 25-02-2003 à 17:56:05    

the real moins moins a écrit :

ben ouais mais montre le généré qui fait foirer ton truc....


 
tu es sûr ? :heink:  
c'est un gros morceau hein...

Reply

Marsh Posté le 25-02-2003 à 17:56:55    

Code :
  1. <HTML>
  2. <HEAD></HEAD>
  3. <BODY>
  4.  Nombre de résultats : 48
  5.  <TABLE cellpadding=5>
  6.   <TR>
  7.    <TD></TD>
  8.    <TD><a href="http://www.xxxxx.fr/index.html?tri_acte">Acte</a></TD>
  9.    <TD><a href="http://www.xxxxx.fr/index.html?tri_type">Type</a></TD>
  10.    <TD><a href="http://www.xxxxx.fr/index.html?tri_valeur">Valeur</a></TD>
  11.   </TR>
  12.   <TR>
  13.    <TD><a href="http://www.bidon.fr?label_acte=120144&label_champs=120146">voir</a></TD>
  14.    <TD>120144</TD>
  15.    <TD>Prénoms</TD>
  16.    <TD>Anne</TD>
  17.   </TR>
  18.   <TR>
  19.    <TD><a href="http://www.bidon.fr?label_acte=120760&label_champs=120770">voir</a></TD>
  20.    <TD>120760</TD>
  21.    <TD>Prénoms mère</TD>
  22.    <TD>Anne</TD>
  23.   </TR>
  24.   <TR>
  25.    <TD><a href="http://www.bidon.fr?label_acte=121024&label_champs=121026">voir</a></TD>
  26.    <TD>121024</TD>
  27.    <TD>Prénoms</TD>
  28.    <TD>Anne</TD>
  29.   </TR>
  30.   <TR>
  31.    <TD><a href="http://www.bidon.fr?label_acte=121178&label_champs=121180">voir</a></TD>
  32.    <TD>121178</TD>
  33.    <TD>Prénoms</TD>
  34.    <TD>Anne</TD>
  35.   </TR>
  36.   <TR>
  37.    <TD><a href="http://www.bidon.fr?label_acte=123532&label_champs=123534">voir</a></TD>
  38.    <TD>123532</TD>
  39.    <TD>Prénoms</TD>
  40.    <TD>Anne</TD>
  41.   </TR>
  42.   <TR>
  43.    <TD><a href="http://www.bidon.fr?label_acte=124148&label_champs=124158">voir</a></TD>
  44.    <TD>124148</TD>
  45.    <TD>Prénoms mère</TD>
  46.    <TD>Anne</TD>
  47.   </TR>
  48.   <TR>
  49.    <TD><a href="http://www.bidon.fr?label_acte=124412&label_champs=124414">voir</a></TD>
  50.    <TD>124412</TD>
  51.    <TD>Prénoms</TD>
  52.    <TD>Anne</TD>
  53.   </TR>
  54.   <TR>
  55.    <TD><a href="http://www.bidon.fr?label_acte=124566&label_champs=124568">voir</a></TD>
  56.    <TD>124566</TD>
  57.    <TD>Prénoms</TD>
  58.    <TD>Anne</TD>
  59.   </TR>
  60.   <TR>
  61.    <TD><a href="http://www.bidon.fr?label_acte=126920&label_champs=126922">voir</a></TD>
  62.    <TD>126920</TD>
  63.    <TD>Prénoms</TD>
  64.    <TD>Anne</TD>
  65.   </TR>
  66.   <TR>
  67.    <TD><a href="http://www.bidon.fr?label_acte=127536&label_champs=127546">voir</a></TD>
  68.    <TD>127536</TD>
  69.    <TD>Prénoms mère</TD>
  70.    <TD>Anne</TD>
  71.   </TR>
  72.   <TR>
  73.    <TD><a href="http://www.bidon.fr?label_acte=127800&label_champs=127802">voir</a></TD>
  74.    <TD>127800</TD>
  75.    <TD>Prénoms</TD>
  76.    <TD>Anne</TD>
  77.   </TR>
  78.   <TR>
  79.    <TD><a href="http://www.bidon.fr?label_acte=127954&label_champs=127956">voir</a></TD>
  80.    <TD>127954</TD>
  81.    <TD>Prénoms</TD>
  82.    <TD>Anne</TD>
  83.   </TR>
  84.   <TR>
  85.    <TD><a href="http://www.bidon.fr?label_acte=130308&label_champs=130310">voir</a></TD>
  86.    <TD>130308</TD>
  87.    <TD>Prénoms</TD>
  88.    <TD>Anne</TD>
  89.   </TR>
  90.   <TR>
  91.    <TD><a href="http://www.bidon.fr?label_acte=130924&label_champs=130934">voir</a></TD>
  92.    <TD>130924</TD>
  93.    <TD>Prénoms mère</TD>
  94.    <TD>Anne</TD>
  95.   </TR>
  96.   <TR>
  97.    <TD><a href="http://www.bidon.fr?label_acte=131188&label_champs=131190">voir</a></TD>
  98.    <TD>131188</TD>
  99.    <TD>Prénoms</TD>
  100.    <TD>Anne</TD>
  101.   </TR>
  102.   <TR>
  103.    <TD><a href="http://www.bidon.fr?label_acte=131342&label_champs=131344">voir</a></TD>
  104.    <TD>131342</TD>
  105.    <TD>Prénoms</TD>
  106.    <TD>Anne</TD>
  107.   </TR>
  108.   <TR>
  109.    <TD><a href="http://www.bidon.fr?label_acte=133696&label_champs=133698">voir</a></TD>
  110.    <TD>133696</TD>
  111.    <TD>Prénoms</TD>
  112.    <TD>Anne</TD>
  113.   </TR>
  114.   <TR>
  115.    <TD><a href="http://www.bidon.fr?label_acte=134312&label_champs=134322">voir</a></TD>
  116.    <TD>134312</TD>
  117.    <TD>Prénoms mère</TD>
  118.    <TD>Anne</TD>
  119.   </TR>
  120.   <TR>
  121.    <TD><a href="http://www.bidon.fr?label_acte=134576&label_champs=134578">voir</a></TD>
  122.    <TD>134576</TD>
  123.    <TD>Prénoms</TD>
  124.    <TD>Anne</TD>
  125.   </TR>
  126.   <TR>
  127.    <TD><a href="http://www.bidon.fr?label_acte=134730&label_champs=134732">voir</a></TD>
  128.    <TD>134730</TD>
  129.    <TD>Prénoms</TD>
  130.    <TD>Anne</TD>
  131.   </TR>
  132.   <TR>
  133.    <TD><a href="http://www.bidon.fr?label_acte=137084&label_champs=137086">voir</a></TD>
  134.    <TD>137084</TD>
  135.    <TD>Prénoms</TD>
  136.    <TD>Anne</TD>
  137.   </TR>
  138.   <TR>
  139.    <TD><a href="http://www.bidon.fr?label_acte=137700&label_champs=137710">voir</a></TD>
  140.    <TD>137700</TD>
  141.    <TD>Prénoms mère</TD>
  142.    <TD>Anne</TD>
  143.   </TR>
  144.   <TR>
  145.    <TD><a href="http://www.bidon.fr?label_acte=137964&label_champs=137966">voir</a></TD>
  146.    <TD>137964</TD>
  147.    <TD>Prénoms</TD>
  148.    <TD>Anne</TD>
  149.   </TR>
  150.   <TR>
  151.    <TD><a href="http://www.bidon.fr?label_acte=138118&label_champs=138120">voir</a></TD>
  152.    <TD>138118</TD>
  153.    <TD>Prénoms</TD>
  154.    <TD>Anne</TD>
  155.   </TR>
  156.   <TR>
  157.    <TD><a href="http://www.bidon.fr?label_acte=140472&label_champs=140474">voir</a></TD>
  158.    <TD>140472</TD>
  159.    <TD>Prénoms</TD>
  160.    <TD>Anne</TD>
  161.   </TR>
  162.   <TR>
  163.    <TD><a href="http://www.bidon.fr?label_acte=141088&label_champs=141098">voir</a></TD>
  164.    <TD>141088</TD>
  165.    <TD>Prénoms mère</TD>
  166.    <TD>Anne</TD>
  167.   </TR>
  168.   <TR>
  169.    <TD><a href="http://www.bidon.fr?label_acte=141352&label_champs=141354">voir</a></TD>
  170.    <TD>141352</TD>
  171.    <TD>Prénoms</TD>
  172.    <TD>Anne</TD>
  173.   </TR>
  174.   <TR>
  175.    <TD><a href="http://www.bidon.fr?label_acte=141506&label_champs=141508">voir</a></TD>
  176.    <TD>141506</TD>
  177.    <TD>Prénoms</TD>
  178.    <TD>Anne</TD>
  179.   </TR>
  180.   <TR>
  181.    <TD><a href="http://www.bidon.fr?label_acte=143860&label_champs=143862">voir</a></TD>
  182.    <TD>143860</TD>
  183.    <TD>Prénoms</TD>
  184.    <TD>Anne</TD>
  185.   </TR>
  186.   <TR>
  187.    <TD><a href="http://www.bidon.fr?label_acte=144476&label_champs=144486">voir</a></TD>
  188.    <TD>144476</TD>
  189.    <TD>Prénoms mère</TD>
  190.    <TD>Anne</TD>
  191.   </TR>
  192.   <TR>
  193.    <TD><a href="http://www.bidon.fr?label_acte=144740&label_champs=144742">voir</a></TD>
  194.    <TD>144740</TD>
  195.    <TD>Prénoms</TD>
  196.    <TD>Anne</TD>
  197.   </TR>
  198.   <TR>
  199.    <TD><a href="http://www.bidon.fr?label_acte=144894&label_champs=144896">voir</a></TD>
  200.    <TD>144894</TD>
  201.    <TD>Prénoms</TD>
  202.    <TD>Anne</TD>
  203.   </TR>
  204.   <TR>
  205.    <TD><a href="http://www.bidon.fr?label_acte=147248&label_champs=147250">voir</a></TD>
  206.    <TD>147248</TD>
  207.    <TD>Prénoms</TD>
  208.    <TD>Anne</TD>
  209.   </TR>
  210.   <TR>
  211.    <TD><a href="http://www.bidon.fr?label_acte=147864&label_champs=147874">voir</a></TD>
  212.    <TD>147864</TD>
  213.    <TD>Prénoms mère</TD>
  214.    <TD>Anne</TD>
  215.   </TR>
  216.   <TR>
  217.    <TD><a href="http://www.bidon.fr?label_acte=148128&label_champs=148130">voir</a></TD>
  218.    <TD>148128</TD>
  219.    <TD>Prénoms</TD>
  220.    <TD>Anne</TD>
  221.   </TR>
  222.   <TR>
  223.    <TD><a href="http://www.bidon.fr?label_acte=148282&label_champs=148284">voir</a></TD>
  224.    <TD>148282</TD>
  225.    <TD>Prénoms</TD>
  226.    <TD>Anne</TD>
  227.   </TR>
  228.   <TR>
  229.    <TD><a href="http://www.bidon.fr?label_acte=150636&label_champs=150638">voir</a></TD>
  230.    <TD>150636</TD>
  231.    <TD>Prénoms</TD>
  232.    <TD>Anne</TD>
  233.   </TR>
  234.   <TR>
  235.    <TD><a href="http://www.bidon.fr?label_acte=151252&label_champs=151262">voir</a></TD>
  236.    <TD>151252</TD>
  237.    <TD>Prénoms mère</TD>
  238.    <TD>Anne</TD>
  239.   </TR>
  240.   <TR>
  241.    <TD><a href="http://www.bidon.fr?label_acte=151516&label_champs=151518">voir</a></TD>
  242.    <TD>151516</TD>
  243.    <TD>Prénoms</TD>
  244.    <TD>Anne</TD>
  245.   </TR>
  246.   <TR>
  247.    <TD><a href="http://www.bidon.fr?label_acte=151670&label_champs=151672">voir</a></TD>
  248.    <TD>151670</TD>
  249.    <TD>Prénoms</TD>
  250.    <TD>Anne</TD>
  251.   </TR>
  252.   <TR>
  253.    <TD><a href="http://www.bidon.fr?label_acte=154024&label_champs=154026">voir</a></TD>
  254.    <TD>154024</TD>
  255.    <TD>Prénoms</TD>
  256.    <TD>Anne</TD>
  257.   </TR>
  258.   <TR>
  259.    <TD><a href="http://www.bidon.fr?label_acte=154640&label_champs=154650">voir</a></TD>
  260.    <TD>154640</TD>
  261.    <TD>Prénoms mère</TD>
  262.    <TD>Anne</TD>
  263.   </TR>
  264.   <TR>
  265.    <TD><a href="http://www.bidon.fr?label_acte=154904&label_champs=154906">voir</a></TD>
  266.    <TD>154904</TD>
  267.    <TD>Prénoms</TD>
  268.    <TD>Anne</TD>
  269.   </TR>
  270.   <TR>
  271.    <TD><a href="http://www.bidon.fr?label_acte=155058&label_champs=155060">voir</a></TD>
  272.    <TD>155058</TD>
  273.    <TD>Prénoms</TD>
  274.    <TD>Anne</TD>
  275.   </TR>
  276.   <TR>
  277.    <TD><a href="http://www.bidon.fr?label_acte=157412&label_champs=157414">voir</a></TD>
  278.    <TD>157412</TD>
  279.    <TD>Prénoms</TD>
  280.    <TD>Anne</TD>
  281.   </TR>
  282.   <TR>
  283.    <TD><a href="http://www.bidon.fr?label_acte=158028&label_champs=158038">voir</a></TD>
  284.    <TD>158028</TD>
  285.    <TD>Prénoms mère</TD>
  286.    <TD>Anne</TD>
  287.   </TR>
  288.   <TR>
  289.    <TD><a href="http://www.bidon.fr?label_acte=158292&label_champs=158294">voir</a></TD>
  290.    <TD>158292</TD>
  291.    <TD>Prénoms</TD>
  292.    <TD>Anne</TD>
  293.   </TR>
  294.   <TR>
  295.    <TD><a href="http://www.bidon.fr?label_acte=158446&label_champs=158448">voir</a></TD>
  296.    <TD>158446</TD>
  297.    <TD>Prénoms</TD>
  298.    <TD>Anne</TD>
  299.   </TR>
  300.  </TABLE>
  301. </BODY>
  302. </HTML>


 
 
 
**********************************************
 
pour info, le code HTML ci dessus est enregistré dans un fichier HTML, qui est envoyé ensuite à ce code
 

Code :
  1. south = new JEditorPane();
  2.       //south.setDoubleBuffered(false);
  3.       south.setEditable(false);
  4.       //south.setEditorKit(new javax.swing.text.html.HTMLEditorKit());
  5.       //south.getEditorKit().createDefaultDocument();
  6.       south.addHyperlinkListener(new RechercheHyperlinkListener(this));
  7.       URL page = reference.search(annotateur.getText(),typeActe,listeVal.toArray()); //ici on récupère l'URL du fichier HTML
  8.       if (page != null){
  9. south.setPage(page);
  10. add(south,"South" );
  11.       }


Message édité par Predicator le 25-02-2003 à 18:02:52
Reply

Marsh Posté le 25-02-2003 à 18:01:52    

Predicator a écrit :

il y en a un derrière... mais ce code (au départ) est celui du mec qui a mis un javax.swing.Timer dans un servlet :sweat:


 :ouch: C'était vrai alors ?  :ouch:

Reply

Marsh Posté le 25-02-2003 à 18:04:34    

R3g a écrit :


 :ouch: C'était vrai alors ?  :ouch:  

voui :pt1cable:  
et on s'en sert toujours en attendant de refaire toute sa partie... :pfff:
 
mais revenons en à nos moutons s'il vous plait :D
est-ce que quelqu'un voit d'où vient le problème ?
le code HTML me parait correct, et l'utilisation du JEditorPane n'est pas en cause, car le problème survient dès la première occurence du code ci-dessus...
 
je ne sais pas je ne sais plus je suis perdu (et celui qui me dit : "fais comme bernard loiseau, ça vie d'air pur et d'eau fraiche un bernard loiseau" sera pas drôle [:tapai] )


Message édité par Predicator le 25-02-2003 à 18:07:23
Reply

Marsh Posté le 25-02-2003 à 18:04:34   

Reply

Marsh Posté le 25-02-2003 à 18:06:49    

[:spamafote]
ptet y'a une limite à ce que le jeditorpane accepte comme quantité d'html
tu as essayé de lui donner un fichier html "à la main" a ton jeditorpane?

Reply

Marsh Posté le 26-02-2003 à 10:27:54    

the real moins moins a écrit :

[:spamafote]
ptet y'a une limite à ce que le jeditorpane accepte comme quantité d'html
tu as essayé de lui donner un fichier html "à la main" a ton jeditorpane?


 
j'essaye de générer un tableau avec un éditeur, je vous tiens au courant...

Reply

Marsh Posté le 26-02-2003 à 11:54:24    

j'ai essayé avec un fichier généré "à la main"
j'ai même passé ce fichier à la moulinette W3C pour être sûr qu'il est valide... même problème
 
par contre,je me suis rendu compte d'une chose. le problème n'apparait que lorsque le JEditorPane n'est pas visible... je m'explique..
 
j'ai un JPanel RecherchePanel dont le layout est un BorderLayout
 
le north est la recherche simple
le center la recherche avancée
le south le résultat de la recherche... c'est le south qui est un JEditorPane.
 
si le south n'est pas visible (le tout est dans un JScrollPane) alors le problème apparait. en le faisant apparaitre de quelques pixels, je résoud le problème (provisoirement, car le mode avancé produit un décalage qui fait disparaitre le JEditorPane, et donc réaparaitre le problème)
 
vous avez une idée de comment régler le problème ?
j'ai entendu dire que le JEditorPane marchait mal dans les applets, et qu'il n'arrivait pas à calculer correctement sa taille à partir d'un document HTML

Reply

Marsh Posté le 26-02-2003 à 15:14:47    

j'ai trouvé comment résoudre le problème...
c'est que la méthode getPage() ne doit pas être bloquante. alors Java doit s'emmêler les pinceaux en essayer de calculer la taille... (preferredSize était à 6x6 et size à 0x0)
 
j'ai remplacé  
 

Code :
  1. getPage(url)


 
par
 

Code :
  1. InputStreamReader reader = new InputStreamReader(url.openStream());
  2. HTMLDocument doc = new HTMLDocument();
  3. south.read(reader,doc);


 
et ça marche [:augie]
 
EDIT : n'oubliez pas le setContent("text/html" ) ou sinon ça marche pas...


Message édité par Predicator le 26-02-2003 à 15:56:12
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed