2013-07-18 8 views
0

어쨌든 캐럿 위치가 이전에 없었던 JTextArea에서 캐럿 위치를 설정할 수 있습니까? KeyEvent.VK_ENTER에서 KeyListener를 사용하여 JTextArea에 텍스트를 추가하고 텍스트를 JTextArea에 추가하는 위치의 한 줄 아래에 캐럿 위치를 설정하고 싶습니다.캐럿이 JTextArea에없는 캐럿 위치 설정

건배,

테일러

답변

3

를 통해 JTextArea에의 끝으로 커서를 전진 textArea.append("\n");

  • 를 통해 JTextArea에에 새 줄을 추가 :
  • 단순히 그렇게, 새로운 라인을 추가하려면 .VK_ENTER

  • KeyListener를 사용하지 마십시오. Swing은 Key Bindings와 함께 사용하도록 설계되었습니다. 자세한 내용은 How to Use Key Bindings에있는 스윙 튜토리얼의 섹션을 읽어보십시오.

    텍스트를 JTextArea에 추가 할 위치의 한 줄 아래에 캐럿 위치를 설정하십시오.

    텍스트를 추가 할 때 텍스트 영역에 "\ n"을 추가했는지 확인하십시오. 그럼 그냥 사용할 수 있습니다 :

    textArea.setCaretPosition(textArea.getDocument().getLength()); 
    
    +0

    . 감사! –

    1
    • 나는 강력하게 권장하지 않습니다 낮은 수준의 청취자의 사용으로 모든 KeyListener를 사용하지 촉구하고 업그레이드 및 수정 코드를 어렵게 만들 수 있습니다.
    • 더 나은 방법이있을 수있는 궁극적 인 목표는 무엇입니까? 그 다음의 KeyEvent에 모든 KeyListener를 사용하여 setCaretPosition(...)
    +0

    궁극적 인 목표는 matlab 서버에서 문자열을 가져 와서 내가 만든 GUI의 JTextArea에 추가하는 것입니다. 나는 키 리스너 VK_ENTER를 사용하여 텍스트를 matlab 서버로 보낸다. 키 리스너가 아닌 다른 경로에 대한 제안 사항이 있습니까? –

    +0

    @TaylorFireman : 예, 상황에 따라 Key Bindings, DocumentListener 또는 DocumentFilter. 너 한테 –