Wir verwenden JavaFXs TextArea
-Steuerelement in unserer Anwendung und versuchen, es in Jazzy Rechtschreibprüfungs-API zu integrieren Wenn ein Benutzer ein falsches Wort eingibt, das nicht im Wörterbuch enthalten ist, wird dieses Wort hervorgehoben.
Gibt es eine Möglichkeit, ein Wort in diesem Steuerelement hervorzuheben? Ich habe keine Optionen dafür in den JavaDocs gesehen, also wenn jemand einen Ansatz vorschlagen könnte?
Es könnte möglich sein, dass ich die HTMLEditor
-Komponente verwende und die Wörter unterschiedlich mit <font face="red=>wrongWord</font>
einfärbe. Dies bringt jedoch eine ganze Reihe anderer Probleme mit der Rechtschreibprüfung mit sich, wie z. B. die HTML-Tags und die Anzahl der Wörter.
Das JavaFX-Steuerelement TextArea (ab 2.0.2) unterstützt keine Rich Text-Bearbeitung, bei der Textstile (Schriftarten usw.) gemischt sind.
Sie können zusammenhängende Zeichenketten in der TextArea markieren, indem Sie den selectRange der TextArea wie im folgenden Beispiel ändern:
%Vor%Sie können den obigen Code als Grundlage verwenden, um die TextArea in den schreibgeschützten Modus zu versetzen, während die Rechtschreibprüfung stattfindet. Implementieren Sie die Aufforderung, jedes Wort der Reihe nach zu suchen und zu korrigieren, bis die Rechtschreibprüfung abgeschlossen ist. Führen Sie die Eingabeaufforderung in einem separaten Dialogfeld oder in einem separaten Bereich aus. Die Jazzy-Demo scheint so zu funktionieren Ссылка , also sollte es ziemlich einfach sein, ihre Swing-Benutzeroberfläche in JavaFX zu konvertieren.
Alternativ könnten Sie ein JavaFX-WebView-Steuerelement verwenden, um eine der vielen Javascript / HTML-basierten Rechtschreibprüfungen (z. B. Ссылка ) zu verwenden eine Technik, die der hier gezeigten ähnelt: Ссылка .
RichTextFX ermöglicht das Hinzufügen von Stil zu Textbereichen.
Es ist möglich ... irgendwie
Ich weiß, dass diese Frage gelöst ist, aber ich fand einen Weg, das Problem zu beheben, und dachte, ich würde es für andere Leute veröffentlichen, die auch über diesen Beitrag stolpern. Dies ist ein wenig hacky, aber es funktioniert in einer Prise, wenn Sie Text in einer TextArea markieren müssen und nicht die unbefriedigende "unmögliche" Antwort akzeptieren möchten.
Das Rechteck wird jetzt perfekt mit dem Hintergrund verschmelzen, aber die Farbe des Textes ändern. Das Deaktivieren des Rechtecks bedeutet, dass es für den Benutzer nicht mehr als asketisch erscheint - z. B. Aktionen wie das Klicken auf das Rechteck haben keine Überraschungseffekte.
Sie können diese Methode leicht anpassen, wenn eine Vielzahl von Farben gewünscht wird.
Ich kann die Implementierungsdetails veröffentlichen, wenn Leute interessiert sind, skeptisch oder wenn es schwierig ist, zu arbeiten.
Mit JavaFX 8 können Sie verwenden TextFlow
Sie können bestimmte Stilklassen für fett, rot, grün oder jede Art von Texte und ordnen Sie sie in TextFlow an, während jedem Text die gewünschte Stilklasse zugewiesen wird
Tags und Links java highlighting javafx-2 javafx spell-checking