'tain, je devrais le vendre, mon code!! Entre les forums de Sun et celui là, ça fait du monde d'intéressé!
J'ai fait ça, mais c un sacré bordel : en effet en AWT, pas de solution avec les composants de base (on peut pas écrire avec des couleurs différentes, d'ailleurs)
donc, j'ai recrée un composant à partir du Canvas de l'AWT (pasque c'est pour une applet, et donc, sans plugin, y'a pas Swing) qui sait dessiner des images (effectivement, y'a une classe de rendering, qui transforme certains codes en smileys), des liens hypertexte, et changer de couleur...
Le seul truc con, c'est que je l'ai fait pour le boulot, donc, je peux pas le filer comme ça..
En gros, j'ai 3 classes : une classe de gestion du texte (Document) qui gère le texte brut, et ses attributs (couleur, font, taille, souligné, lien ou pas, etc, etc...), une classe de dessin, qui gère l'affichage, le douvle buffering, la scrollbar et le redimensionnement, et une classe de rendering. La class d'affichage est listener du document, et quand celui-ci change, elle demande au Renderer de lui fournir des objets "Dessinables" c'est à dire qui ont un méthode Draw(Graphics g), en fonction de sa largeur (bah oui, sinon, les mots seraient coupés). Le renderer traite les éléments de texte fournis par le document (il calcule leur taille après dessin, les splite si besoin est pour qu'ils tiennent dans la zone d'affichage, remplace les codes par les smileys, etc, etc) Ensuite, la classe d'affichage utilise la méthode Draw des objets retournés par le Renderer pour les dessiner sur son contexte graphique...
Bon, c un peu confus, là, mais je pourrai donner plus de renseignements si besoin est...
J'ai aussi fait un composant d'onglets en AWT, et une Table comparable à la JTable, un peu moins raffinée, certes, mais qui sait afficher des couleurs, des images, des booléens et des String, et les éditer cellule par cellule...Un de ces jours, je mettrai une démo en ligne!