请教如何以字符串的形式返回JTextArea中的某一行。

解决方案 »

  1.   

    String[] lines=textArea.getText.split("\n");
      

  2.   

    // Create a text area
        JTextArea textArea = new JTextArea("word1 word2\nword3\nword4");
        
        // Get paragraph element
        Element paragraph = textArea.getDocument().getDefaultRootElement();
        
        // Get number of content elements
        int contentCount = paragraph.getElementCount();
        
        // Get index ranges for each content element.
        // Each content element represents one line.
        // Each line includes the terminating newline.
        for (int i=0; i<contentCount; i++) {
            Element e = paragraph.getElement(i);
            int rangeStart = e.getStartOffset();
            int rangeEnd = e.getEndOffset();
            try {
                String line = textArea.getText(rangeStart, rangeEnd-rangeStart);
            } catch (BadLocationException ex) {
            }
        }Here is another way to enumerate the content elements with a ElementIterator: 
        // Get the text area's document
        Document doc = textArea.getDocument();
        
        // Create an iterator using the root element
        ElementIterator it = new ElementIterator(doc.getDefaultRootElement());
        
        // Iterate all content elements (which are leaves)
        Element e;
         while ((e=it.next()) != null) {
            if (e.isLeaf()) {
                int rangeStart = e.getStartOffset();
                int rangeEnd = e.getEndOffset();
                try {
                    String line = textArea.getText(rangeStart, rangeEnd-rangeStart);
                } catch (BadLocationException ex) {
                }
            }
         }
      

  3.   

    //得到光标所在行的字符串
    int cp=textArea.getCaretPosition();
    int line=textArea.getLineOfOffset(cp);
    int lineStart=textArea.getLineStartOffset(line);
    int lineEnd=textArea.getLineEndOffset(line);
    String s=textArea.getText(lineStart, lineEnd-lineStart);