具体是这样:我编了个小程序,想实时读取串口中的数据并且将其显示在TextArea上。当我想在每行数据前加上系统时间再显示时,时间总是显示程序运行时的时间。部分代码:
static Calendar time = Calendar.getInstance();
...
int BufferedWriter out=new BufferedWriter(new FileWriter(file));
 while ( (lineInfo=reader.readLine())!= null){        lineInfo="[" + time.getTime() + "] " + lineInfo + "\n";
        jTextArea1.insert(lineInfo,pos);
        pos=pos+lineInfo.length();       }

解决方案 »

  1.   

    while ( (lineInfo=reader.readLine())!= null){ 
      time.setTime(new java.util.Date()); // 加上这么一句
      ....
      

  2.   

     lineInfo="[" + new java.util.Date() + "] " + lineInfo + "\n"; 干脆你这么做算了!
    那个 Calendar.getInstance() 默认使用初始化时的时间,以后每次使用新的时间,都必须重新设置!
      

  3.   

    问题没看太懂,是要取得程序运行时间吧?采用系统函数得到当前系统时间(以毫秒为单位):
    long start=System.currentTimeMillis();
     /**待测程序段*/
    long end=System.currentTimeMillis();
    System.out.println("Time:"+(end-start));楼主试试