Có khá nhiều khung gui ngoài kia cho java, nhưng cái gì được công nhận là khung lựa chọn ngày nay?
Sau đây là sự hiểu biết của tôi về các khung khác nhau, xin vui lòng sửa cho tôi nếu tôi sai. Đây là một bộ câu hỏi được xác định rất lỏng lẻo, nhưng tôi vẫn nghĩ nó có giá trị cho bất cứ ai nghĩ đến việc tạo ra các ứng dụng gui phong phú.
Là nền tảng của swing, nó hoạt động tốt nhưng thiếu các thành phần tiên tiến. Nếu bạn có ý định tạo ra các ứng dụng phong phú, AWT có lẽ không phải là hướng đi. Tuy nhiên, đối với các ứng dụng gui nhỏ hơn không yêu cầu giao diện người dùng phong phú. Điều này có thể phù hợp hoàn hảo vì nó là một khuôn khổ đã được thử nghiệm và đã được chứng minh.
Dựa trên AWT như đã nêu trước đây. Thời kỳ đầu, nó được coi là chậm và có lỗi và khiến IBM tạo SWT cho Eclipse. Tuy nhiên, với Java 5 (hoặc 6?), Swing trở thành khung lựa chọn để xây dựng các ứng dụng mới. Swing có rất nhiều thành phần phong phú nhưng vẫn còn thiếu ở một số lĩnh vực. Một ví dụ là không có thành phần TreeTable đầy đủ tính năng có thể thực hiện sắp xếp và lọc / tìm kiếm.
Được tạo bởi IBM cho Eclipse, họ dường như nghĩ rằng Swing không phù hợp với Eclipse vào thời điểm đó. Bản thân nó là cấp độ khá thấp và nó sử dụng các tiện ích gốc của nền tảng thông qua JNI. Nó hoàn toàn không liên quan đến Swing và AWT. API của họ tuy nhiên hơi khó hiểu và không trực quan. Chúng có một số thành phần nâng cao giống như TreeTable. (nhưng tôi không nghĩ họ hỗ trợ sắp xếp và lọc ra khỏi hộp). SWT sử dụng một số ràng buộc riêng (thông qua JNI?) Và điều đáng nói trên internet là khung này không nên được sử dụng trong các dự án ngày nay. (tại sao không?)
Dựa trên Swing và nhiệm vụ của nó là tạo ra các thành phần phong phú cho swing. Vẫn đang được phát triển. (mặc dù không hoạt động lắm.) Có một bộ các thành phần rất đẹp, ví dụ như TreeTable. Nhưng TreeTable không hỗ trợ lọc và sắp xếp theo như tôi biết. Tuy nhiên, nó hỗ trợ tìm kiếm với đánh dấu.
Lưu ý rằng SwingX là các thành phần (AFAIU) là phần mở rộng hoặc thành phần của các thành phần Xoay hiện có
Joodies
Một khuôn khổ mà tôi không biết gì về ... Điểm mạnh và điểm yếu của nó là gì? Những gì Jgoodies thiết lập ngoài phần còn lại?
Joodies OTOH là về PLAFs và bố trí.
Flagship mới nhất của Java / Oracle. hứa hẹn sẽ là tiêu chuẩn thực tế trong việc phát triển các ứng dụng web hoặc máy tính để bàn phong phú.
Nó kết xuất UI bằng Java2D, do đó giảm thiểu tác động của các di sản (IMO, cồng kềnh) của Swing và AWT. (@Augustus Thoo)
Trọng tâm chính của nó dường như tập trung vào RIA (Ứng dụng Internet phong phú), nhưng có vẻ như nó cũng có thể được áp dụng cho các ứng dụng máy tính để bàn. Và như một nhận xét cá nhân, Trông rất thú vị! Tôi đặc biệt thích đó là một dự án apache.
https://cwiki.apache.org/PIVOT/frequently-asked-questions-faq.html
Một trình bao bọc java cho thư viện qt riêng được viết bằng c / c ++. Rất mạnh mẽ, được sử dụng rộng rãi và được chấp nhận. Có rất nhiều thành phần GUI và API dễ sử dụng.
Vì vậy, để cố gắng tóm tắt một chút về những gì tôi đang hỏi:
Nói rằng tôi muốn tạo một ứng dụng máy tính để bàn ngày nay bằng Java bao gồm rất nhiều thành phần nâng cao, tôi nên chọn cái gì? Và tại sao?
Cái nào trong số những khung này nên được công nhận là không dùng nữa và cái nào nên được công nhận là khung của tương lai xa?
Khung tiêu chuẩn thực tế ngày nay là gì và bạn sử dụng công cụ nào để tạo các ứng dụng java gui?
Tôi có thể hối hận khi hỏi điều này, nhưng dù sao cũng nên thử:
C # /. Net được cho là có một bộ rất tốt các thành phần dễ sử dụng có thể uốn cong theo mọi hướng có thể. Và sau khi nghiên cứu các khung java khác nhau ở một mức độ nào đó, tôi dường như không thể nói giống nhau về Java. Tại sao lại thế này? Tại sao java (ngôn ngữ lập trình được sử dụng rộng rãi nhất trên thế giới) không có cùng bộ thành phần GUI?
Có phải java đã dựa trên các thành phần gui của họ ở mức độ thấp hơn nhiều và có thể viết tất cả các thành phần nâng cao này mà tôi đang tìm kiếm, nhưng bạn phải tự làm nhiều việc nếu không phải là tất cả công việc?