2012-06-22 5 views
0
최고

에서 텍스트 표시 나는이에 다음 라인을 인쇄하는 디스플레이 루틴을 원하는자바 :

 public void getEngineOutputOriginal(Process engine) 
    { 
     try { 

        BufferedReader reader = 
        new BufferedReader(new InputStreamReader(engine.getInputStream()), 1); 
        String lineRead = null; 
        while((lineRead = reader.readLine()) != null) 

        Application.showEngineAnalysis(lineRead);//send engine analysis to print method 

      } 
        catch(Exception e) { 
         e.printStackTrace(); 
        } 
    } 

이하로 입력 스트림에서 데이터를 인쇄

public static void showEngineAnalysis(String message) { 

    if (message.length() > 0) 
     message += "\n"; 
    Application.obj.engineOutput.append(message); 

} 

일상적인 간단한 디스플레이가

  1. e7e6 b1c3 2. c5d4 e3d4
  2. : 예에서 대신 바닥에 내 JTextArea에 (engineOutput)의 상단, 15,
  3. e7e6 c4d5 2. e6d5
  4. c5d4 e3d4 2. b8c6

  1. c5d4 e3d4 2. b8c6
  2. e7e6 c4d5 2. e6d5
  3. e7e6 b1c3 2. c5d4의 e3d4 행

전적으로 알아낼 수 없습니다 (캐럿 위치 등을 시도했습니다)

답변

2

추가하는 대신 텍스트를 삽입 할 수 있습니다.

public static void showEngineAnalysis(String message) { 
    if (message.length() > 0) 
     message += "\n"; 
    Application.obj.engineOutput.insert(message, 0); 
} 
+0

감사합니다. Roger. 그것은 처음으로 치료를했습니다. Delighted :-) – user1432365

+0

+1 getDocumnet.insertString을 사용합니다.이 경우에는 중요하지 않습니다. – mKorbel

+0

@mKorbel JTextAreas는 내부적으로 삽입을 위해 localDocument.insertString을 수행하므로 동등해야합니다. –