2011-05-31 20 views
8

có cách nào dễ dàng để xóa tất cả Người nghe khỏi JComponent không?Làm thế nào để xóa Người nghe trên các thành viên SWING

JComponent widget = getComponentOverScaryMethod(); 
EventListener[] listners = widget.getListeners(EventListener.class); 
for (EventListener l : listners) { 
    widget.remove*RandomListener*(l); 
} 

Bối cảnh:

Tôi có một JComponent với một số tiền không rõ của Người nghe (loại ngẫu nhiên). Vì tiện ích cần được xóa khỏi phần hiển thị (và sẽ không cần thiết nữa), nó sẽ bị hủy (và các Trình nghe sẽ bị xóa).

Cảm ơn trước Joan

+1

Thành phần sẽ không được sử dụng lại? – RMT

Trả lời

1

nếu bạn loại bỏ các widget từ cha mẹ nó không bao giờ nên được kích hoạt cho các sự kiện một lần nữa và người nghe phải được giải phóng tự động theo gc

công cụ y lý do người nghe sẽ không được giải phóng là do rò rỉ giúp tiện ích có thể truy cập ngay cả khi không được là

Các vấn đề liên quan