Java: Giới thiệu về Timer
Swing Timer dùng để kích hoạt một hoặc nhiều sự kiện ActionEventevents sau một khoảng thời gian nhất định. Timer có thể được cấu hình để kích hoạt sự kiện liên tục hoặc chỉ một lần. Để sử dụng Timer bạn phải xác định độ trễ theo đơn vị mili giây, và đối tượng listener có kiểu ActionListener.
Sử dụng Timer trong phát triển GUI
Timers là rất hữu ích trong các ứng dụng giao diện đồ họa, đặc biệt là nơi hình ảnh động được sử dụng để kích hoạt các hiển thị của khung hình tiếp theo trong các hình ảnh động.
Timer còn có thể được sử dụng trong ứng dụng giao diện mà một người dùng có nhiệm vụ phải hồi đáp trong một thời gian quy định, chăng hạn như trả lời một câu hỏi.
Cài đặt Timer
Timer được tạo bằng cách sử dụng hàm tạo (constructor) sau đây:
Timer (int delay, ActionListener listener)
Hàm tạo này sẽ tạo một Timer trong đó thông báo cho người nghe sau mỗi khoảng thời gian (độ trễ) tính theo đơn vị mili giây.
delay: Là một số nguyên lưu độ trễ trong mili giây.
listener: Là một đối tượng của giao diện ActionListener. Bạn có thể tạo nó bằng cách sử dụng một lớp trong (inner) hoặc một lớp vô danh (anonymous).
Đoạn mã sau demo cách tạo một timer trong đó sẽ lặp lại việc kích hoạt một sự kiện sau mỗi năm giây để hiển thị một thông báo cảnh báo.
Timer tmrAlert;
// Tạo bộ đếm thời gian trong đó sẽ kích hoạt sự kiện sau mỗi 5 giây
tmrAlert = new Timer (5000, new ActionListener () {
public void actionPerformed (ActionEvent ae) {
// Mã lệnh hiển thị thông báo cảnh báo
}
});
Kích hoạt Timer
Sau khi xây dựng được timer thì bạn gọi phương thức start() lớp Timer. Khi bắt đầu, hẹn giờ sẽ cháy các sự kiện hành động liên quan đến tất cả các thời gian quy định.
Câu lệnh tmrAlert.start (); được sử dụng để kích hoạt timer. Tương tự, bạn cũng có thể dừng timer bằng cách gọi phương thức stop().