JavaFX टेक्स्टएरिया में हाइलाइटिंग स्ट्रिंग्स




spell-checking highlighting (4)

JavaFX 8 के साथ आप TextFlow का उपयोग कर सकते हैं

आप कुछ शैली वर्गों को बोल्ड, लाल, हरे या किसी भी प्रकार के ग्रंथों के लिए परिभाषित कर सकते हैं और प्रत्येक पाठ को वांछित शैली वर्ग बताते हुए उन्हें टेक्स्टफ्लो में व्यवस्थित कर सकते हैं

हम अपने आवेदन में जावाएफएक्स के TextArea नियंत्रण का उपयोग कर रहे हैं, और इसे जैज़ी स्पेल चेक एपीआई के साथ एकीकृत करने की कोशिश कर रहे हैं - जैसे कि जब उपयोगकर्ता कोई गलत शब्द दर्ज करता है जो शब्दकोश में नहीं है, तो ऐसा शब्द हाइलाइट किया जाएगा।

क्या नियंत्रण में एक शब्द को उजागर करने का कोई तरीका है? मैंने जावाडॉक्स में इसके लिए कोई विकल्प नहीं देखा है, इसलिए यदि कोई एक दृष्टिकोण का सुझाव दे सकता है?

यह संभव हो सकता है, मुझे लगता है कि, HTMLEditor घटक का उपयोग करें और <font face="red=>wrongWord</font> साथ अलग-अलग शब्दों को रंग दें। हालांकि, वर्तनी जांच के साथ पूरी तरह से भिन्न समस्याएं आती हैं, जैसे जैसे कि html टैग और शब्दों की गिनती


JavaFX टेक्स्टएरिया नियंत्रण (2.0.2 के रूप में) रिच टेक्स्ट संपादन का समर्थन नहीं करता है जहां पाठ शैलियों (फ़ॉन्ट, आदि) मिश्रित होते हैं

आप TextArea की चुनिंदा रेंज में हेर-फेर करके निम्न उदाहरण के रूप में टेक्स्टएरिया में अक्षरों के संकीर्ण स्ट्रिंग को उजागर कर सकते हैं:

public class TextHighlight extends Application {
  public static void main(String[] args) { Application.launch(args); }
  @Override public void start(Stage stage) {
    final TextArea text = new TextArea("Here is some textz to highlight");
    text.setStyle("-fx-highlight-fill: lightgray; -fx-highlight-text-fill: firebrick; -fx-font-size: 20px;");
    text.setEditable(false);
    text.addEventFilter(MouseEvent.ANY, new EventHandler<MouseEvent>() {
      @Override public void handle(MouseEvent t) { t.consume(); }
    });

    stage.setScene(new Scene(text));
    stage.show();

    Platform.runLater(new Runnable() {
      @Override public void run() { text.selectRange(13, 18); }
    });
  }
}

आप वर्तनी जांच के दौरान टेक्स्टएरिया को केवल पढ़ने के लिए मोड में स्विच करने के लिए एक आधार के रूप में उपरोक्त कोड का उपयोग कर सकते हैं। वर्तनी जांच पूरी होने तक प्रत्येक शब्द को खोजने और उसे ठीक करने के लिए प्रेरित करें। एक अलग संवाद या पैनल में संकेत करना। जाजी डेमो इस तरह से http://jazzy.sourceforge.net/demo.html काम करता है, इसलिए इसे अपने स्विंग यूआई को जावाएफएक्स में परिवर्तित करना काफी आसान होना चाहिए।

वैकल्पिक रूप से, आप जावाएक्सएक्सएक्सविव कंट्रोल का उपयोग किसी भी जावास्क्रिप्ट / एचटीएमएल आधारित वर्तनी जांचकर्ताओं (जैसे http://www.javascriptspellcheck.com/ ) में से किसी एक को लपेटने के लिए कर सकते हैं। wordpress.com/2011/12/11/codemirror-based-code-editor-for-javafx/


यह संभव है ... की तरह

मुझे पता है कि यह प्रश्न हल हो गया है, लेकिन मुझे इस मुद्दे को ठीक करने का एक तरीका मिला और मैंने सोचा कि मैं इसे अन्य लोगों के लिए पोस्ट करूँगा जो इस पोस्ट पर भी ठोकर खाते हैं। यह थोड़ा हैकी है, लेकिन यह एक चुटकी में काम करता है, अगर आपको टेक्स्टएरिया में टेक्स्ट को उजागर करने की आवश्यकता होती है और असंतोषजनक "असंभव" उत्तर को स्वीकार नहीं करना चाहता।

  1. TextArea का पृष्ठभूमि रंग और टेक्स्ट फ़ॉन्ट का अग्रभूमि रंग पुनर्प्राप्त करें
  2. अग्रभूमि और पृष्ठभूमि रंग के बीच उच्चतम कंट्रोल के बिन की गणना करें
  3. वांछित पाठ के चारों ओर एक आयताकार रखें
  4. आयत का रंग पृष्ठभूमि रंग में सेट करें
  5. अधिकतम कंट्रास्ट के बिन में आयत के मिश्रण मिश्रण को सेट करें
  6. आयत अक्षम करें

आयत अब पृष्ठभूमि के साथ पूरी तरह से मिश्रण करेगी लेकिन पाठ का रंग बदल जाएगा। आयत को अक्षम करने का मतलब है कि यह उपयोगकर्ता के लिए संन्यासी से अधिक कुछ नहीं दिखाई देता - जैसे कि आयत पर क्लिक करना जैसे कोई आश्चर्य प्रभाव नहीं होगा

यदि विभिन्न रंगों के लिए वांछित हैं तो आप इस पद्धति को थोड़ी-थोका ताज़ा कर सकते हैं

मैं कार्यान्वयन विवरण पोस्ट कर सकता हूं अगर लोग रुचि रखते हैं, संदेह करते हैं, या काम करने के लिए यह मुश्किल है


RichTextFX आपको पाठ श्रेणियों में शैली जोड़ने की अनुमति देता है।





javafx-2