2015-08-11 6 views
0

где я ошибся? Я пытался показывать текущее время в окне каждую секунду. Но показатьТаймер + gregorianCalendar.getTime() не обновляется правильно

ActionListener AL = new ActionListener() 
    { 
     public void actionPerformed(ActionEvent actionEvent) 
     { 
      Date currentTime=gregorianCalendarCurrrentTime.getTime(); 
      JLabelCurrentTime.setText(String.valueOf(currentTime)); 
     } 
    }; 
    Timer timer = new Timer(1000, AL); 
    timer.start(); 

ответ

1

Предполагая, что gregorianCalendarCurrrentTime имеет типа java.util.GregorianCalendar, метод getTime() возвращает Date объекта, который представляющий время календарного-Objekt, который был «текущим» во время создания или после последнего использования set-methods календарного объекта. Метод не определяет текущее время. Чтобы установить текущее время в качестве метки текста, вы просто можете использовать new Date().

LabelCurrentTime.setText(String.valueOf(new Date())); 
+0

Это не будет использовать столько памяти при создании новых объектов Date? – Jump3r

+1

Нет, область действия объекта Date - это вызов valueOf. Поскольку после этого вызова нет ссылки на объект, объект немедленно помечен для сбора мусора. – Joachim

+0

И как я могу показать только h: мин? Мне нужно как-то использовать Календарь? – Jump3r

Смежные вопросы