2012-06-22 81 views
0

显示文本我有一个简单显示程序爪哇:在顶部

public static void showEngineAnalysis(String message) { 

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

} 

其从输入流下面

 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(); 
        } 
    } 

打印数据我想显示例程在以打印下一行我的JTextArea(engineOutput)的顶部,而不是在底部,即,从:

  1. e7e6 b1c3 2. c5d4 e3d4
  2. e7e6 c4d5 2. e6d5
  3. 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

谢谢罗杰。这是第一次工作。很高兴:-) – user1432365

+0

+1我会使用getDocumnet.insertString,在这种情况下肯定没关系 – mKorbel

+0

@mKorbel JTextAreas在内部为local插入一个localDocument.insertString,所以它们应该是等价的。 –