Comment changer la couleur du texte dans le JTextArea?
J'ai besoin de savoir comment faire:
Disons: j'ai un code dans le JTextArea
comme ceci:
LOAD R1, 1
DEC R1
STORE M, R1
ADD R4, R1,8
J'ai voulu changer la couleur de LOAD
, DEC
, STORE
et ADD
de couleur BLEU
R1
, R4
de couleur verte
M
ROUGE
les numéros d'ORANGE
Comment changer la couleur de ce texte?
Ces texte dans le bloc-notes ou peut-être taper directement dans la zone de texte.
- Le meilleur sans doute de ne pas utiliser un JTextArea, mais au lieu d'utiliser un JEditorPane ou similaire.
- droit d'utiliser JTextComponent que le soutien stylled texte, JTextArea, c'est pas juste une façon de le faire ...
Vous devez vous connecter pour publier un commentaire.
JTextArea
est conçu pour divertirPlain Text
. Les réglages appliqués à un caractère unique s'applique à l'ensemble du document dansJTextArea
. Mais avecJTextPane
ouJEditorPane
vous avez le choix, à la couleur de votreString Literals
selon votre goût. Ici, avec l'aide de JTextPane, vous pouvez le faire comme ceci :voici le résultat :
JFrame
est transparente à partir deWindows Look And Feel
deWindows 7
. Si vous pouvez modifier leJFrame
en utilisant l'un de ces Look and Feel, a précisé dans sa réponse 🙂car il est possible d'utiliser
Highlighter
(ou Html) pourJTextArea
, cette API de mise en œuvre réduit les options pour stylled texteà comparer avec
JTextPane
il y a des options de plus en plus variable, par exemple, Surligneur, avec Html ou sans Html, de Police, ou de mettre un autre JComponent à l'intérieur en utilisant le Html ou directement (à savoir JTextArea trop, mais...)Utilisation peut soit utiliser un JEditorPane avec HTML ou écrire un Document personnalisé que les couleurs des éléments.
Pour certains coloration de base (la seule chose que vous pouvez faire avec JTextArea) vous pouvez changer l'arrière-plan et les couleurs de premier plan à quelque chose comme cela, mais ce sera la couleur de l'ensemble du texte du cours:
Le résultat que vous obtenez:
Vous ne pouvez pas avoir des caractères différents dans les différents couleurs dans un JTextArea (au moins pas sans un certain complexe hackery). Utiliser un JTextPane ou JEditorPane à la place. Vous pouvez ensuite accéder à ses
StyledDocument
:ÉDITÉ: changé à la possibilité d'appeler directement
getStyledDocument
, au lieu de casting le résultat de getDocument()Appel
setCharacterAttributes
sur leStyledDocument
pour changer les couleurs des caractères individuels ou des sous-chaînes.Juste une autre alternative. Pour la théorie, voir les autres réponses.
Celle-ci crée des attributs lors de l'ajout de texte, au lieu de dériver le style comme dans la réponse de la belle vache. La fonctionnalité est la même, que le volet de la fusion des attributs avec déjà d'autres attributs.
[Edit] a changé de retour à
insertString
au lieu dereplaceSelection
parce que ce dernier est en défaut lorsque le volet n'est pas modifiableJuste une autre alternative. Pour la théorie, voir les autres réponses.
Celui-ci utilise préconfiguré styles comme des champs. Attention lorsque l'on expose ces champs comme ils sont, euh, mutable.
[Edit] a changé de retour à
insertString
au lieu dereplaceSelection
parce que ce dernier est en défaut lorsque le volet n'est pas modifiable