2009-12-15 5 views
4

J'ai un JTextPane (ou JEditorPane, je peux utiliser soit aucun problème). Comment puis-je changer la police d'une zone sélectionnée en une police spécifique?Java JTextPane Changer la police du texte sélectionné

textpane.getSelectedText().setFont() ne fonctionnera pas. (Même avec font-family)

Répondre

4

Vous pouvez modifier la police de JTextPane uniquement dans son ensemble, elle ne fait pas de texte enrichi. Il y a un Document sous JEditorPane (et apparemment JTextPane aussi), avec getDocument(). Si vous le pouvez, vous voulez convertir ceci en StyledDocument, puis vous pouvez faire des choses comme setCharacterAttributes pour une série donnée de caractères.

Il existe quelques exemples (espérons-le) utiles dans le tutoriel Java au http://java.sun.com/docs/books/tutorial/uiswing/components/editorpane.html.

+1

+1, pour se référer au tutoriel. Je souhaite que plus de gens fassent cela car il répond à la question immédiate et fournit une ressource pour les questions futures. – camickr

+0

Et nous mettre à la faillite? (rire) Mais je suis d'accord, le tutoriel est sous-estimé, il m'a appris beaucoup de ce que je sais. Hélas, certaines sections semblent s'être mises un peu à la hâte: le tutoriel RMI m'a encore confus aujourd'hui. Merci pour le vote! –

+0

(pour être juste, 95% du tutoriel est génial!) –

1

Vous pouvez le faire en utilisant JTextPane. Il est impossible de le faire en utilisant JTextArea. . Voici un meilleur exemple d'utilisation de JTextPane.

Exemple: http://download.oracle.com/javase/tutorial/uiswing/components/editorpane.html

code: http://download.oracle.com/javase/tutorial/uiswing/examples/components/TextSamplerDemoProject/src/components/TextSamplerDemo.java

+0

Bienvenue dans Stack Overflow! Bien que cela puisse théoriquement répondre à la question, [il serait préférable] (http://meta.stackexchange.com/q/8259) d'inclure ici les parties essentielles de la réponse et de fournir le lien pour référence. – Kev

Questions connexes