Tôi có bộ hẹn giờ Đu (javax.swing.Timer) được sử dụng để thực hiện một số hoạt ảnh trong một thành phần Swing tùy chỉnh.Dừng bộ hẹn giờ Swing khi một thành phần bị ẩn
Tuy nhiên, điều này đang gây ra sự cố - đặc biệt là dường như dừng ứng dụng chấm dứt do chuỗi hẹn giờ trực tiếp ngay cả sau khi tất cả các cửa sổ được đóng lại. Ngoài ra nó sẽ được tốt đẹp để tránh các chi phí của bộ đếm thời gian chạy trên các đối tượng ẩn khi các hình ảnh động không thể được nhìn thấy.
Lý tưởng nhất là tôi muốn làm như sau:
- Dừng bộ đếm thời gian khi các thành phần được ẩn
- Bắt đầu thời gian một lần nữa bất cứ khi nào các thành phần trở nên rõ ràng
Đây có phải là có thể làm (theo một cách an toàn theo chủ đề!)
hmm .. có gì sai với một ancestorListener (đó sẽ là suy nghĩ đầu tiên của tôi)? – kleopatra
Hoặc bạn có thể thêm một [ComponentListener] (http://docs.oracle.com/javase/7/docs/api/java/awt/event/ComponentListener.html) vào nó và thêm ** timer.start()/stop() bên trong nó là các phương thức componentHidden (...) và componentShown (...) ** –
@GagandeepBalin một componentListener chỉ là một loại propertyChangeListener với thuộc tính có thể nhìn thấy của một thành phần, mà không thay đổi nếu fitổ tiên được ẩn/hiển thị. – kleopatra