Lập trình bằng ngôn ngữ Java đã thực sự bắt đầu cất cánh đơn giản vì khả năng của họ để mang các chương trình trên nhiều nền tảng. Điều này không chỉ đúng với máy tính để bàn mà Java còn có mặt trong các PC bỏ túi và thậm chí trong các điện thoại di động tiêu chuẩn. Vì điều này, đã có rất nhiều người muốn lập trình cho ngôn ngữ Java để tận dụng thị trường lớn và đang phát triển này.
Lập trình trong Java có nghĩa là bạn phải có các công cụ phù hợp để hoàn thành dự án của mình một cách nhanh chóng và hiệu quả. Một trong những công cụ cần thiết là thành phần GUI (Giao diện người dùng đồ họa). Điều này cho phép bạn dễ dàng thêm thành phần đồ họa mà không cần nhiều chương trình cần thiết. Trong danh mục này, có hai cái mà bạn có thể chọn. Đầu tiên là AWT (Bộ công cụ cửa sổ trừu tượng) và thứ hai là xích đu, xuất hiện nhiều sau đó.
Cả hai bộ công cụ này đều có ưu và nhược điểm riêng khiến chúng phù hợp với các loại nhu cầu lập trình khác nhau. AWT sử dụng rất nhiều lệnh gốc của nền tảng cho nó một tốc độ lớn. Nhưng để chuyển đổi nó để sử dụng trong các nền tảng khác, bạn phải thay đổi các lệnh đối tác. Mặt khác, swing sử dụng mã Java thuần khiến nó rất dễ di chuyển trên các nền tảng với chi phí tốc độ và hiệu suất.
Một tính năng khác của swing là nó cố gắng mô phỏng giao diện của HĐH mà nó đang chạy, làm cho nó giống với môi trường bản địa. Điều này bị AWT đánh bại vì nó sử dụng các lệnh gốc; Nó trông chính xác như giao diện người dùng gốc. Một lợi thế lớn của swing là nó hỗ trợ nhiều tính năng hơn so với những gì AWT làm. Các thành phần như chú giải công cụ và biểu tượng không có sẵn trong AWT trong khi hoàn toàn có thể sử dụng được trong swing. Các tính năng được thêm vào và thiết kế java thuần túy của swing mặc dù có nghĩa là bạn sẽ yêu cầu trình cắm java để chương trình chạy, trong khi hầu hết các trình duyệt ngày nay đã hỗ trợ các lớp AWT loại bỏ nhu cầu tải xuống trình cắm.
Tóm lại, nếu bạn muốn tạo các applet java đơn giản thì bạn có thể thấy các phương pháp xây dựng AWT nhanh chóng và dễ dàng sẽ giúp ích rất nhiều. Nhưng nếu bạn muốn tạo một ứng dụng toàn diện, bạn có thể xem xét những gì swing có thể cung cấp cho bạn. Danh sách thành phần nâng cao và tính di động có thể chứng minh là hữu ích hơn.