Giô-na,
Swing khái quát kiến trúc cơ bản của bạn để cung cấp cho bạn trải nghiệm người dùng trung lập nền tảng. Thành phần hạng nặng duy nhất (do HĐH cung cấp) là bộ chứa JFrame và phần còn lại được xử lý khá nhiều bởi công cụ Swing. Mặt khác, AWT yêu cầu HĐH vẽ tất cả các thành phần UI của nó, điều đó có nghĩa là nó nhanh hơn bằng nhiều cách khi bạn sử dụng các thành phần UI gốc dành riêng cho HĐH. SWT cố gắng đạt được điểm trung bình, đối với các thành phần tiêu chuẩn khác nhau như nút và nhãn (có sẵn trên hầu hết các hệ điều hành), nó cho phép HĐH xử lý các thành phần đó và đối với các thành phần chuyên dụng khác, SWT sẽ xử lý việc tạo cho bạn.
Điều đó đã được nói, tôi có thể phác thảo những nhược điểm.
(1) Vì bộ công cụ tạo và kết xuất các thành phần cho bạn thay vì hỏi HĐH, bạn không được tận dụng tốc độ của các thành phần tích hợp do HĐH cung cấp.
(2) Giao diện người dùng không quá phức tạp vì nó trông xa lạ với hầu hết các nền tảng HĐH liên quan đến giao diện bạn sử dụng.
(3) Một số trình quản lý bố cục, ví dụ như GridBadLayout, v.v. có thể được đơn giản hóa tốt hơn. Tôi đã mất số lượng dự án tôi đã làm việc ở đó mọi người đã bọc GridBagLayout trong một số mã bespoke để có được cách sử dụng đơn giản hơn.
Tôi khuyên bạn nên viết một ứng dụng đơn giản trong AWT, Swing và SWT và so sánh sự phát triển tiếp cận sản phẩm cuối cùng giữa tất cả chúng, sau đó xem xét các nhận xét khác nhau từ các nhà phát triển khác và quyết định xem ứng dụng nào hoạt động tốt nhất. Tôi đã làm việc với Swing trong nhiều năm và tôi đã sử dụng không thích SWT, nhưng tôi nhận ra rằng Swing phức tạp hơn rất nhiều so với những khuôn khổ khác ngoài kia.