2011-11-28 9 views
14

मुझे अपने कोड में मैन्युअल रूप से कैरेट स्थिति सेट करने की आवश्यकता है। javafx.scene.control.TextInputControl के तहत है लेकिन कोई सेटटर विधि नहीं है।javafx.scene.control में कैरेट स्थिति सेट करें .extArea और javafx.scene.control.TextField

मैं कैरेट की स्थिति कैसे निर्धारित कर सकता हूं?

उत्तर

29
TextArea ta = new TextArea(); 
ta.setText("1234567890"); 
ta.positionCaret(4); 
+12

स्थिति कैरेट() ... उस विधि के लिए एक भ्रमित नाम क्या है। – ceklock

+3

हाँ, 'सेट कैरेटोशन' की तरह smth सुविधाजनक होगा –

+0

टेक्स्ट एरिया में बहुत अजीब व्यवहार है, जैसे नीचे तीर नीचे नहीं जाता है। – brian

5

आप पहले बताए गए स्थिति कैरेट फ़ंक्शन का उपयोग कर सकते हैं। लेकिन इसे Platform.runLater में लपेटना सुनिश्चित करें। अन्यथा यह बिल्कुल काम नहीं कर सकता है।

Platform.runLater(new Runnable() { 
    @Override 
    public void run() { 
     textArea.positionCaret(0); 
    } 
}); 
+4

के लिए भी काम करता है केवल मुख्य यूआई थ्रेड की तुलना में अन्य धागे से चल रहा है। – DeepSidhu1313

1

टेक्स्ट इनपुट कंट्रोल में दो विधि हैं जो कैरेट की स्थिति में हेरफेर की अनुमति देती हैं। ये हैं: -

  1. selectPositionCaret (पूर्णांक स्थिति) - आपके द्वारा दर्ज वर्तमान कैरट की स्थिति में पिछले कैरट स्थिति के बीच पाठ का चयन करता।

  2. स्थिति कैरेट (int pos) - पिछले चयन को समाशोधन वर्तमान कैरेट स्थिति सेट करता है।

तो मुझे लगता है कि आपके मामले में आप किसी भी चयन के बिना स्थिति सेट करने के लिए स्थिति कैरेट विधि का उपयोग करना चाहते हैं।

संबंधित मुद्दे