Khi yêu cầu cập nhật được gửi đến swing (hệ thống được kích hoạt, ví dụ: do thay đổi kích thước hoặc chặn bởi cửa sổ khác hoặc kích hoạt ứng dụng, ví dụ: gọi phương thức repaint()), yêu cầu này thực sự được xử lý như thế nào? Thủ tục nào diễn ra trong điều RepaintManager đó?Trong swing-java, bản sao của đồ họa đến từ đâu?
Trả lời
Từ nhận xét của bạn:
Bạn có biết điều gì xảy ra trong peer.getGraphics()?
Điều đó phụ thuộc vào việc triển khai thực hiện ngang hàng nào được sử dụng.
Một thực hiện là WComponentPeer
(sử dụng khi chạy trên Windows), mà dường như sử dụng hai cách để nhận được đối tượng Graphics
:
Nếu các thành phần có cha mẹ kiểu
Window
(hoặc là một trong chính nó) mà lần lượt có một bộ đệm trở lại chưa kết hợp, đối tượngGraphics
của hình ảnh đó được trả về. Điều này tùy thuộc vào loại hình ảnh nhưng hầu hết giống với một phiên bảnSunGraphics2D
, được tạo trongcreateGraphics()
.Nếu không,
ScreenUpdateManager
thể hiện được truy xuất vàcreateGraphics(...)
được gọi trên đó lần lượt trả về phiên bảnSunGraphics2D
mới.
Xin lưu ý rằng đây chỉ là một cách có thể và nó phụ thuộc rất nhiều vào hệ điều hành, bộ công cụ JVM và giao diện người dùng được sử dụng.
- 1. Vị trí của TextBox đến từ đâu?
- 2. Xóa đồ họa và sơn lại đồ họa của JPanel?
- 3. Microsoft.Practices.ServiceLocation đến từ đâu?
- 4. Lỗi đồ họa của Eclipse Juno?
- 5. Đồ họa trong ASP.Net (C#)
- 6. C# tệp dbml đến từ đâu?
- 7. Đồ họa raster trong xterm?
- 8. đồ họa trong C# (.NET)
- 9. Hình ảnh tỷ lệ .NET khi vẽ đến đồ họa
- 10. bản sao nông của một bản đồ trong Java
- 11. Tên Psycopg` đến từ đâu?
- 12. Vẽ đồ họa với Matplotlib?
- 13. Giá trị của CXX trong một makefile đến từ đâu?
- 14. Thêm trường văn bản vào Đồ họa trong java
- 15. Đồ họa vector trong Android
- 16. Đồ họa vector trong Javascript?
- 17. 'Hello world' đến từ đâu?
- 18. Tên 'atoi` đến từ đâu?
- 19. Vẽ văn bản với đối tượng đồ họa trên JFrame
- 20. `Kích thước` đến từ đâu?
- 21. Tại sao việc thu nhỏ và khôi phục cửa sổ có ảnh hưởng đến đồ họa đã vẽ trong WPF?
- 22. Đồ họa DrawString với điều khiển từ gói
- 23. Thư viện đồ họa Java
- 24. Đồ họa hiển thị trong C#
- 25. Quy ước TODO đến từ đâu?
- 26. Brushes.White làm chậm bản demo đồ họa xuống
- 27. In đồ họa bằng Python
- 28. từ nào tệp phẳng đến từ đâu?
- 29. Tạo biểu đồ hình tròn đồ họa trong C#
- 30. Kịch bản Bash với các menu đồ họa
Bạn cần chi tiết đến mức nào? Nếu _very_ chi tiết, bạn có thể xem mã nguồn, nếu không một nơi tốt để bắt đầu sẽ là tài liệu chính thức: http://www.oracle.com/technetwork/java/painting-140037.html – Thomas
Cảm ơn bạn, tôi đã đọc cả hai . nhưng không hiểu trường hợp * Graphics * được tạo ra như thế nào. Tôi đã truy tìm trước một số * peer.getGraphics() * (được gọi bên trong * Component.getGraphics() *) trong đó tôi giả sử * peer * là một peer nặng (được đề cập trong liên kết của bạn). nhưng ở đó tôi đã mất dấu vết. bạn có biết điều gì xảy ra trong * peer.getGraphics() *? – Untitled