2012-09-24 2 views

답변

4

당신의 최선의 선택은 바로의 기본 Document을 수정하는 것입니다 JTextArea.

import java.awt.BorderLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.util.Date; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JScrollPane; 
import javax.swing.JTextArea; 
import javax.swing.SwingUtilities; 
import javax.swing.text.BadLocationException; 

public class TestTextArea { 

    private void initUI() { 
     JFrame frame = new JFrame("test"); 
     final JTextArea textarea = new JTextArea(24, 80); 
     JButton addText = new JButton("Add line"); 
     addText.addActionListener(new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent e) { 
       try { 
        textarea.getDocument().insertString(0, "New line entered on " + new Date() + "\n", null); 
       } catch (BadLocationException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
       } 
      } 
     }); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.add(new JScrollPane(textarea)); 
     frame.add(addText, BorderLayout.SOUTH); 
     frame.pack(); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 

      @Override 
      public void run() { 
       new TestTextArea().initUI(); 
      } 
     }); 
    } 

} 
+0

내가 **'\ n' **의 입력 텍스트가 :

여기이 작은 데모입니다. 그러나 텍스트 영역에 추가하면 일반 텍스트로 **'\ n' **이 인쇄됩니다. 개행 문자로 인쇄되기를 바랍니다. 가능한가? – Prasad

1

textArea.setText("this is new line" + "\n" + textArea.getText())

9

당신은이 작업을 수행 할 수 있습니다

textArea.setText("The new text\n" + textArea.getText()); 

을 또는 더 나은 솔루션이 될 것이다 :

try { 
    textArea.getDocument().insertString(0, "The new text\n", null); 
} catch (BadLocationException e) { 
    e.printStackTrace(); 
} 
관련 문제