दिलचस्प पोस्ट
मोबाइल ब्राउज़र का पता लगा रहा है TypeError: अविश्वसनीय प्रकार: 'डिक्ट', जब एक दूसरे शब्द के लिए कुंजी के रूप में इस्तेमाल किया जाता है कैसे एक बिंदु के latlng एक निश्चित दूरी से दूसरे से गणना करने के लिए? आर और आरबी मोड में पाठ फ़ाइल को पार्स करने में अंतर जावा स्ट्रिंग में कितने अक्षर हैं? "आर" सामग्रियों की खोज कैसे करें? संलग्न करने के बाद जावास्क्रिप्ट में आग लगती नहीं है सी ++ / सीएलआई में, टोपी वर्ण क्या करता है? क्या IFrames (HTML) अप्रचलित हैं? कैसे ScrollView के अंदर GridView डाल करने के लिए ENTER पर <div> को जोड़ने में संतोषजनक रोकें – क्रोम आईफोन में ब्लूटूथ (चालू / बंद) प्रोग्रामैटिक रूप से कैसे प्राप्त करें I Content_main.xml और activity_main.xml के बीच का अंतर? कई अनुबंधों के साथ WCF सेवाहोस्ट चलाएं हर सफेद अंतरिक्ष में सी विभाजित स्ट्रिंग

Java GUI में JTextArea के ऑटो-स्क्रोलिंग को कैसे सेट करें?

मैंने JScrollPane पर एक JTextArea को एम्बेडेड किया है और उत्पादन के लिए JTextArea का उपयोग कर रहा हूं।

मैं चाहता हूं कि जब भी आउटपुट JTextArea के आकार से परे हो जाए, JTextArea स्वचालित रूप से स्क्रॉल करता है ताकि उपयोगकर्ता को हाल ही के आउटपुट को देखने के लिए मैन्युअल स्क्रॉल करना न हो।

मैं उसे कैसे कर सकता हूँ?

मैंने पहले से ही JTextArea और JScrollPane दोनों की ऑटोस स्क्रॉल संपत्ति को सही पर सेट कर दिया है।

Solutions Collecting From Web of "Java GUI में JTextArea के ऑटो-स्क्रोलिंग को कैसे सेट करें?"

JDK1.4.2 (या इससे पहले) का उपयोग करते समय आप मंचों में पाए जाने वाले सबसे आम सुझाव कोड की तरह निम्न का उपयोग करना है:

textArea.append(...); textArea.setCaretPosition(textArea.getDocument().getLength()); 

हालांकि, मैंने अभी देखा है कि जेडीके 5 में इस मुद्दे को वास्तव में एक एपीआई परिवर्तन से हल किया गया है। अब आप पाठ क्षेत्र के DefaultCaret पर एक संपत्ति सेट करके इस व्यवहार को नियंत्रित कर सकते हैं। इस दृष्टिकोण का उपयोग कोड होगा:

 JTextArea textArea = new JTextArea(); DefaultCaret caret = (DefaultCaret)textArea.getCaret(); caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE); 

इस विषय का अधिक विस्तृत विवरण यहां मिल सकता है: टेक्स्ट एरिया स्क्रॉलिंग

  JScrollBar vbar = scrollPane.getVerticalScrollBar(); for (int i = 0; i < 20; i++) { myJTxt.append("This is text " + i + "\n"); vbar.setValue(vbar.getMaximum()); vbar.paint(vbar.getGraphics()); myJTxt.scrollRectToVisible(myJTxt.getVisibleRect()); myJTxt.paint(myJTxt.getGraphics()); try { Thread.sleep(250); } catch (InterruptedException ex) { Logger.getLogger(ScrollTextView.class.getName()).log(Level.SEVERE, null, ex); } } 

जब आप JTextArea पर कहीं भी क्लिक करते हैं, तो ऑटो-स्क्रॉलिंग रोकना संभव है। क्योंकि कैरेट की स्थिति एक बार बदली गई, देखें बिंदु भी बदल गया। इस समय आपको कैरेट की स्थिति को सेट करना चाहिए जब आप कुछ टेक्स्ट जोड़ते हैं या जोड़ते हैं मेरे रास्ते पर, मैंने सेट कैरेट स्थिति सहित विधि बनायी थी, और तब इसका उपयोग तब किया जब कुछ जोड़ा या जोड़ा जाए।

  JTextArea jTextArea = new JTextArea(); DefaultCaret caret = (DefaultCaret)jTextArea.getCaret(); caret.setUpdatePolicy(DefaultCaret.OUT_BOTTOM); 

इसका उपयोग इसके बजाय

 JTextArea textArea = new JTextArea(); DefaultCaret caret = (DefaultCaret)textArea.getCaret(); caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE); scrollPane = new JScrollPane(); scrollPane.add(textArea); scrollPane.setViewportView(textArea); 

इसे इस्तेमाल करे:

 JTextArea jTextArea = new JTextArea(); JScrollPane jScrollPane = new JScrollPane(); jScrollPane.setViewport(jTextArea);