java用Gui文本区输出系统时间不能连续输出

这是我的代码:

public void Run() {
//        this.field = field;
        Calendar calender = Calendar.getInstance();
        calender.setTime(new Date());
        int year = calender.get(Calendar.YEAR);
        int month = calender.get(Calendar.MONTH) + 1;
        int day = calender.get(Calendar.DAY_OF_MONTH);
        int hour = calender.get(Calendar.HOUR_OF_DAY);
        int minute = calender.get(Calendar.MINUTE);
        int second = calender.get(Calendar.SECOND);
//        String str = field.getText();
//        Boolean boolean1=new Boolean(true);
        String str = new String();
        str = year+"年"+month+"月"+day+"日"+hour+"点"+minute+"分"+second+"秒";
        while(true){
            try {
                field.append(str);
                 Thread.sleep(1000);
            }catch(Exception e){
                System.out.println("出错了!");
            }
            System.out.println(year+"年"+month+"月"+day+"日"+hour+"点"+minute+"分"+second+"秒");
        }
    }

这是网上代码:

public void run(){
        while(b){
            try{
          timestr = sdf.format(new Date());
          jta.append(timestr);
          Thread.sleep(1000);
        }catch(Exception e){
        }

}

}

这是该有的样子,我的不加while和try输出一个时间,加上之后界面就出不来了

   
     

解决了没