2011-06-13 4 views
2

JLabel을 사용하여 날짜를 표시하고 매초마다 업데이트하려고합니다. 이렇게하려면 Swing의 Timer 클래스를 사용하고 DateTimer라는 자체 클래스를 구현합니다. DateTimer는 또한 ActionListener입니다.스윙 타이머와 ActionEvents에 관한 문제

이것은 DateTimer입니다 :

public class DateTimer implements ActionListener { 
    private int delay; 
    private JLabel label; 
    private Calendar cal; 

    public DateTimer(int delay, JLabel label) { 
     this.delay = delay; 
     this.label = label; 

     cal = Calendar.getInstance(); 
     new Timer(this.delay, this).start(); 
    } 

    public void actionPerformed(ActionEvent e) { 
     this.label.setText(this.cal.getTime().toString()); 
    } 

} 

내가 이렇게 내 코드에 다른 곳에서이 전화 :

new DateTimer(1000, this.label); 

내가 날짜를 한 번 표시에 도착, 그것은 지금까지 업데이트되지 않습니다.

저는 Java GUI 및 처리 작업에 익숙하지 않으므로 제 개인의 무지를 용서하십시오.

답변

7

java.util.Calendar.getInstance()은 현재 만들어진 날짜와 시간이 인 개체를으로 반환합니다. 가정 할 때 자동으로 업데이트되지 않습니다.

+0

+1 대신, 그는 아마도 다음과 같은'Calendar.getInstance(). getTime(). toString()'을 원할 것입니다. – mre

+0

그래, 그랬어. 둘 다 감사합니다. Calendar.getInstance(). getTime(). toString()을 사용하고 있습니다. – n0pe