Mettant en évidence les Chaînes en JavaFX TextArea
Nous sommes à l'aide de JavaFX est TextArea
de contrôle dans notre application, et en essayant de l'intégrer à Jazzy Sort API de contrôle - par exemple, lorsqu'un utilisateur entre un mot de travers qui n'est pas dans le dictionnaire, ce mot serait mise en évidence.
Est-il un moyen de mettre en évidence un mot de contrôle? Je n'ai pas vu d'options pour que, dans la Javadoc, donc si quelqu'un pourrait proposer une approche?
Il pourrait être possible, je pense, pour utiliser le HTMLEditor
composant et de la couleur les mots diferently avec <font face="red=>wrongWord</font>
. Ceci, cependant, apporte tout un tas de différents problèmes avec la vérification de l'orthographe, tels que les balises html et les mots comptent.
OriginalL'auteur Marcelo | 2012-02-03
Vous devez vous connecter pour publier un commentaire.
En Charge le contrôle TextArea (2.0.2) ne prend pas en charge l'édition de texte riche où les styles de texte (polices, etc) sont mélangés.
Vous pouvez mettre en évidence contigus des chaînes de caractères dans le TextArea en manipulant le TextArea du selectRange, comme dans l'exemple suivant:
Vous pouvez utiliser le code ci-dessus comme base pour passer le TextArea en mode lecture seule en vérifiant l'orthographe qui se passe. Mettre en œuvre invite à trouver et à corriger chaque mot, à son tour jusqu'à ce que la vérification orthographique est terminée. Effectuer les invites dans une boîte de dialogue séparée ou d'un panneau. Le Jazzy démo semble fonctionner de cette façon http://jazzy.sourceforge.net/demo.html, de sorte qu'il devrait être assez facile de convertir son Swing de l'INTERFACE utilisateur pour JavaFX.
Alternativement, vous pouvez utiliser un JavaFX WebView de contrôle pour envelopper un des nombreux javascript/html vérificateurs d'orthographe (par exemple,http://www.javascriptspellcheck.com/) en utilisant une technique similaire à ce qui est démontré ici: http://jewelsea.wordpress.com/2011/12/11/codemirror-based-code-editor-for-javafx/.
OriginalL'auteur jewelsea
RichTextFX vous permet d'ajouter du style à des plages de texte.
OriginalL'auteur Tomas Mikula
C'est possible... en quelque sorte
Je sais que cette question est résolue, mais j'ai trouvé un moyen de résoudre le problème et j'ai pensé à la poster pour d'autres personnes qui sont aussi de tomber sur ce post. C'est un peu hacky, mais il fonctionne dans un pincement si vous avez besoin de mettre du texte dans un TextArea et ne veulent pas accepter la insatisfaisant "impossible" réponse.
Le rectangle va maintenant se marient parfaitement avec le fond, mais de changer la couleur du texte. La désactivation du rectangle signifie qu'il n'y apparaît comme quelque chose de plus que ascétique de l'utilisateur - e.g des actions comme le clic droit sur le rectangle n'aura pas d'effet de surprise.
Vous pouvez modifier légèrement cette méthode si une variété de couleurs.
Je peux poster les détails de mise en œuvre si les gens sont intéressés, sceptique, ou si c'est difficile de se mettre au travail.
Oh, mec, c'est hacky! bravo! 😉
Comment décidez-vous où mettre ce rectangle? Par exemple, disons que je veux mettre en évidence les caractères 7-13 (et je ne sais pas si cela inclut un saut de ligne!!), comment puis-je décider de l'endroit où le haut à gauche du rectangle va?
OriginalL'auteur en_Knight
Avec JavaFX 8, vous pouvez utiliser
TextFlow
Vous pouvez définir certaines classes de style pour le gras, en rouge, en vert ou en n'importe quel type de Textes et les organiser dans l'objet TextFlow lors de l'affectation souhaitée classe de style pour chaque Texte
OriginalL'auteur Ruturaj Patil
J'ai une exigence similaire et @en_Knight réponse est assez prometteur pour moi. Il vient de l'théorique de détails. Basé sur ses entrées, j'ai pensé à faire un essai et c'est en dessous de ce que je suis fini avec.
Il y a de nombreux cas qui doivent encore être traitées. Mais au moins cela devrait donner assez d'idée de ce que @en_Knight est dire.
Veuillez consulter ci-dessous l'exécutable démo::
OriginalL'auteur Sai Dandem