Tôi đang cố gắng hiểu khi nào sử dụng revalidate/repaint/pack.Chu kỳ làm mới Swing
Đáng ngạc nhiên là tôi không tìm thấy tài liệu chi tiết dưới dạng chi tiết (cảm thấy tự do liên kết).
Cho đến nay tôi đã hiểu rằng đây là tất cả trách nhiệm của Người quản lý lại.
- sơn/sơn lại đề cập đến những gì họ coi là bẩn/sạch
- gói/xác nhận/hợp lệ lại đề cập đến những gì có giá trị
This article on Oracle giải thích rằng gọi một repaint enqueues một công việc trên sự kiện Dispatcher Chủ đề mà sẽ lần lượt gọi paintImmediately() trên thành phần (điều này vẽ lại thành phần).
This trail cho biết rằng có hoặc không hợp lệ được liên kết với Trình quản lý bố cục. Và đó là tất cả về kích thước của thành phần chứ không phải là nội dung.
- Có đúng là bạn nên gọi xác thực lại khi bạn di chuyển/thay đổi kích thước thành phần của bạn và sơn lại khi bạn thay đổi nội dung của nó?
- Phương thức pack() thực sự là một điều không được chấp nhận mà bạn không bao giờ nên gọi?
- Có bất kỳ xác nhận quyền sở hữu nào ở trên không đúng không?
Bạn có thể xác định sơn về những thay đổi mà nó ngụ ý không? Tôi bắt đầu nghi ngờ tôi hoàn toàn hiểu ý nghĩa của nó. – kotoko
@kotoko Tôi không chắc chắn tôi đang nhận được những gì loại câu trả lời của bạn tìm kiếm (wrt bình luận của bạn). Khi bạn vẽ (thực hiện phương thức 'paintComponent()', nó có nghĩa là bạn vẽ các đường thẳng, hình tròn (đầy hoặc không), hình chữ nhật (đầy hoặc không), hình ảnh, văn bản, v.v ... (tất cả các thao tác bạn có thể thực sự gọi trên 'Graphics/Graphics2D'). –
Tôi đã cố gắng để hiểu những gì phương pháp kích hoạt những gì.Bây giờ tôi nhận được nó (quy tắc của ngón cái): hoạt động liên quan đến bố cục/thành phần ảnh hưởng đến nếu hợp lệ (1.) của bạn; Các hoạt động đồ họa/Graphics2D ảnh hưởng nếu bẩn. – kotoko