Java bắt đầu bằng awt (Bộ công cụ tạo cửa sổ trừu tượng) và sau đó giới thiệu xoay.
Trong AWT vòng xử lý sự kiện nền tảng được nối vào và các sự kiện được đóng gói trong các lớp java riêng và một hàng đợi/xử lý sự kiện đơn (xử lý song song) xử lý chúng. Swing kế thừa điều này.
Trong AWT mọi thành phần GUI, như nút radio hoặc mục menu, có mã kiểm soát "ngang hàng" gốc, thành phần được cung cấp nền tảng. Có một tập hợp các lớp java và đối tác C của chúng. Đặc biệt thú vị là lớp đồ họa java cho phép vẽ tùy chỉnh các dòng, hình chữ nhật và như vậy. Nó được xem xét dưới Windows với một CDC (Device Context) - có lẽ.
Trong Swing hầu hết các thành phần nền tảng được mô phỏng, nghĩa là, tự tái tạo: bản vẽ, xử lý chuột, v.v. Vì vậy, phần bản địa đơn giản hơn, có thể nói là một CWnd (thành phần Window) với bản vẽ tùy chỉnh.
Đu có thể đạt được chức năng phong phú và nhất quán hơn. Bạn có thể tưởng tượng rằng việc thiết lập màu backgroud trên nút radio AWT có thể không thực hiện được hoặc sử dụng HTML trên nhãn hoặc đầu công cụ. Ngoài ra Swing có thể làm skinning, chủ đề, LookAndFeels. Màn hình Hệ thống là cảm nhận gần giống với các thành phần nền tảng. Đặc biệt các thành phần Swing có nhiều hơn trọng lượng nhẹ, vì không phải mọi thành phần đều có kiểm soát ngang hàng bản địa để được xử lý trong C.
Bây giờ SWT là một sáng kiến sau này của IBM được thực hiện trong nhật thực để tải lại AWT. Không phải là tùy chỉnh như Swing nhưng dự định được nền tảng gần.
Bạn nên quên sử dụng các thành phần AWT và nếu không lập trình cho nhật thực RCP cũng là SWT.
Vì vậy: sự kiện nền tảng toàn cầu như nhấp chuột, yêu cầu repaint được dịch sang sự kiện Java. Có một hệ thống phân cấp container của JFrame, JPanels, JScrollPanes, JComponents. Một sự kiện được cử đến các thành phần xử lý, mà ví dụ paintComponent được gọi là:
@Override
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g; // A later introduced class that can do more.
g2.draw...
}
Với JavaFX có đến một cầu thủ mới, đó là IMHO chưa hoàn toàn trưởng thành, nhưng có thể sử dụng trong mã phi sản xuất. Nó cho phép hiệu ứng/hình động, quay, biến đổi, ánh sáng. Vì vậy, một kết xuất 2D - 4D, dựa trên nền tảng như dựng hình. Ngoài ra nó là tài sản dựa, do đó, một hộp kiểm sẽ không nhất thiết phải được ràng buộc với một boolean, nhưng một tài sản boolean quan sát và thông báo thay đổi. Tôi vẫn cần một số kinh nghiệm thực tế, để hình thành một kiến trúc tối ưu với nó.
Điều này có thể nguy hiểm gần với "Có thể viết một cuốn sách quá rộng", nhưng tôi muốn bị cuốn hút để biết câu trả lời không phân biệt –
Tôi nghĩ rằng nó sử dụng hệ điều hành cơ bản để hiển thị chúng – Sam
Và bạn không ngạc nhiên về tất cả các lớp mạng chẳng hạn? Đó chính là điều tương tự. VM sử dụng bất kỳ API gốc nào có sẵn trên nền tảng này. – Mat