2011-01-16 4 views
0

프로그램은 사용자가 텍스트 필드의 명령을 입력 한 다음 입력 한 내용이 텍스트 영역에 표시되도록합니다. 예를 들어 키워드가 녹색 인 경우 텍스트 영역에 녹색 텍스트 한 줄만 설정할 수 없으므로 텍스트 창을 사용해야합니다.Java : JTextArea에서 append()와 동일한 작업을 수행하는 JTextPane의 메소드가 있습니까?

텍스트 팬을 사용하면 더 이상 append 메서드를 사용할 수 없다는 것이 문제입니다.

private final static String newline = "\n"; 
private void enterPressed(java.awt.event.KeyEvent evt) {          
    int key = evt.getKeyCode(); 
    if (key == KeyEvent.VK_ENTER) 
    { 
     String textfieldEnterdValue = textfield1.getText().toString(); 
     this.TextArea1.append("> "+tb1EnterdValue+newline); 
     this.tb1.setText(""); 
     if((tb1EnterdValue.equals("yes"))) 
     { 
      TextArea1.setForeground(Color.green); 
     } 
    } 

답변

0

기본 문서에서 직접 변경해야한다고 생각합니다. 이 같은

뭔가 :

 
String value = textfield1.getText(); // no need for toString() here! 
textPane.getDocument().insertString(textPane.getCaretPosition(), value, null); 
1

JTextPane 모델로 Document을 사용합니다. 이는 여러 색상과 글꼴을 사용하는 데 필요합니다.
그래서 JTextPane에 추가하려면 문서를 수정해야합니다.
다음 방법을 사용할 수있다 :

insertString(int pos, String value, AttributeSet att)
remove(int pos, int length)

예를 들어,이 문서의 끝에 value을 추가한다.

Document d = textPane.getDocument(); 
d.insertString(d.getLength(), value, null); 

또한 새로 추가 된 라인이 화면에 확인 modelToView(int)의 결과 scrollRectToVisible(Rectangle)를 호출 할 수 있습니다.

관련 문제