2011-12-19 16 views
5

मैं जावा का उपयोग कर रहा हूं, और मैं JTextArea बनाने की कोशिश कर रहा हूं जो संपादन योग्य नहीं है लेकिन अभी भी क्षेत्र में देखभाल है। दूसरे शब्दों में, एक टेक्स्ट एरिया जो उपयोगकर्ता द्वारा टाइप किए गए वर्ण प्रदर्शित नहीं करता है, लेकिन अभी भी ब्लिंकिंग कैरेट (यानी फोकस) है।टेक्स्ट एरिया में ध्यान रखें जब गैर-संपादन योग्य

मैं ईमानदारी से इस समस्या पर फंस गया। मैंने setEditable के साथ घूमने की कोशिश की है, लेकिन कैरेट रखने का कोई तरीका नहीं है। मैंने जिस चरित्र को टाइप किया है, उस उपयोगकर्ता को उस चरित्र को हटाने का भी प्रयास किया है, लेकिन मैं इसे स्क्रीन पर चमकाने से नहीं रोक सकता।

+0

सावधान रहना: यदि आप अपने उपयोगकर्ता भ्रमित हो जाएगा - एक निमिष _caret_ (कि मार्कर :-) संपादन योग्य – kleopatra

उत्तर

8

मुझे लगता है कि निम्नलिखित तुम्हारी मदद करेगा:

textArea.getCaret().setVisible(true); 

या

textArea.getCaret().setSelectionVisible(true); 
+0

चीयर्स होने के लिए मानक दृश्य सुराग है के लिए तकनीकी शब्द है, मामले में पूरी तरह से काम करता है –

+1

आप पुनर्स्थापित करना चाहते माउस कर्सर भी, 'textArea.setCursor (Cursor.getPredefinedCursor (Cursor.TEXT_CURSOR)) का प्रयास करें; ' – gd1

1

ऊपर

textArea.getCaret().setVisible(true); 

जवाब के लिए हमेशा की तरह, पूरी तरह से काम नहीं करता है तो TextArea या EditorPane फोकस खो देता है, कहता है कि आप एक अलग फ्रेम या कुछ पर क्लिक करते हैं, जब आप वापस आते हैं तो कर्सर फिर से अदृश्य हो जाएगा।

मेरे पास एक ही समस्याएं थीं, ऐसा लगता है कि समाधान फोकस श्रोता जोड़ने के लिए है और प्रत्येक बार संपादक को ध्यान केंद्रित करने पर यह दृश्य दिखाई देता है।

text.addFocusListener(new FocusListener() { 
    public void focusLost(FocusEvent e) { 
    return; 
    } 

    public void focusGained(FocusEvent e) { 
    text.getCaret().setVisible(true); // show the caret anyway 
    } 
}); 
+0

मुझे' text.getCaret() सेट करना होगा (दृश्य); मेरे कैरेट श्रोता में' क्योंकि यह केवल इसमें है फोकस श्रोता हमेशा काम नहीं करता (हालांकि यह मदद करता है)। यह जावा 8 (जेडीके 1.8.0_25)/मैक ओएस एक्स माउंटेनियन के साथ था। – nyholku

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