Actuellement j'utilise un seul JTextPane dans lequel j'insère du texte et une image de la façon suivante:
Pour le texte, celui-ci est associé à un Style que je défini.
Par exemple
1 2
| Style styleDefault = this.addStyle("styleDefault", defaut);
StyleConstants.setFontFamily(styleDefault, "Verdana"); |
Puis j'aoute le texte au StyledDocument avec son Style associé
monStyledDocument.insertString(0,«mon texte, blablabla», styleDefault);
Pour l'image je défini aussi un Style avec un setIcon
1 2
| Style styleImg = this.addStyle("styleImg", defaut);
StyleConstants.setIcon(styleImg, monImageIcon); |
Puis j'ajoute l'icon au StyledDocument
monStyledDocument.insertString(0, "<image1>",styleImg);
Dans ce cas de figure, j'obtiens dans le JTextPane le résultat visuel suivant:
l'image est affichée puis commence le texte dans le prolongement du bord inférieur de l'image.
xxxxxxxxxxx
xxxxxxxxxxx
xx image xx
xxxxxxxxxxx
xxxxxxxxxxx mon texte commence ici bla blabla bla bla bla
Je pense pas me tromper dans la façon d'ajouter une image dans le JtextPane à moins que vous me dites que ce n'est pas comme cela qu'il faut faire.
Je sais aussi que l'on peut ajouter une image de la façon suivante:
JtextPane.insertIcon(monImageIcon)
Mais dans ce cas l'image n'est pas référencée dans le StyledDocument.
Un panel qui contiendrait une image à gauche (sur un label par exemple) et un textpane à droite ?
Merci pour ta proposition fraco.
C'est une idée à laquelle j'ai pensé.
Mais si le texte est long, la suite du texte ne sera pas affichée en dessous de l'image mais toujours sur la droite.
C'est pour cela que je me demande si l'on peut ou pas forcer l'affichage du texte dans le prolongement du bord haut de l'image. Il y a peut être une astuce pour le faire.
Partager