JavaFX - Kiến trúc
JavaFX cung cấp một API hoàn chỉnh với một tập hợp các lớp và giao diện phong phú để xây dựng các ứng dụng GUI với đồ họa phong phú. Các gói quan trọng của API này là:
javafx.animation - Chứa các lớp để thêm các hoạt ảnh dựa trên quá trình chuyển đổi như tô, mờ dần, xoay, chia tỷ lệ và dịch, vào các nút JavaFX.
javafx.application - Chứa một tập hợp các lớp chịu trách nhiệm về vòng đời ứng dụng JavaFX.
javafx.css - Chứa các lớp để thêm kiểu dáng giống như CSS vào các ứng dụng JavaFX GUI.
javafx.event - Chứa các lớp và giao diện để cung cấp và xử lý các sự kiện JavaFX.
javafx.geometry - Chứa các lớp để định nghĩa các đối tượng 2D và thực hiện các thao tác trên chúng.
javafx.stage - Gói này chứa các lớp vùng chứa cấp cao nhất cho ứng dụng JavaFX.
javafx.scene- Gói này cung cấp các lớp và giao diện để hỗ trợ đồ thị cảnh. Ngoài ra, nó cũng cung cấp các gói phụ như canvas, biểu đồ, điều khiển, hiệu ứng, hình ảnh, đầu vào, bố cục, phương tiện, sơn, hình dạng, văn bản, biến đổi, web, v.v. Có một số thành phần hỗ trợ API phong phú này của JavaFX .
Hình minh họa sau đây cho thấy kiến trúc của JavaFX API. Tại đây bạn có thể thấy các thành phần hỗ trợ JavaFX API.
Đồ thị cảnh
Trong JavaFX, các Ứng dụng GUI được mã hóa bằng cách sử dụng Đồ thị cảnh. Đồ thị Cảnh là điểm bắt đầu của việc xây dựng Ứng dụng GUI. Nó chứa các nguyên thủy của ứng dụng (GUI) được gọi là các nút.
Một nút là một đối tượng trực quan / đồ họa và nó có thể bao gồm:
Geometrical (Graphical) objects - (2D và 3D) chẳng hạn như hình tròn, hình chữ nhật, đa giác, v.v.
UI controls - chẳng hạn như Nút, Hộp kiểm, Hộp lựa chọn, Vùng văn bản, v.v.
Containers - (ngăn bố cục) chẳng hạn như Ngăn viền, Ngăn lưới, Ngăn dòng chảy, v.v.
Media elements - chẳng hạn như các đối tượng âm thanh, video và hình ảnh.
Nói chung, một tập hợp các nút tạo nên một biểu đồ cảnh. Tất cả các nút này được sắp xếp theo thứ tự phân cấp như hình dưới đây.
Mỗi nút trong biểu đồ cảnh có một nút cha duy nhất và nút không chứa bất kỳ nút cha nào được gọi là root node.
Theo cách tương tự, mọi nút đều có một hoặc nhiều nút con và nút không có nút con được gọi là leaf node; một nút có con được gọi làbranch node.
Một cá thể nút chỉ có thể được thêm vào biểu đồ cảnh một lần. Các nút của biểu đồ cảnh có thể có Hiệu ứng, Độ mờ, Chuyển đổi, Trình xử lý sự kiện, Trình xử lý sự kiện, Trạng thái ứng dụng cụ thể.
Lăng kính
Lăng kính là một high performance hardware–accelerated graphical pipelineđược sử dụng để kết xuất đồ họa trong JavaFX. Nó có thể hiển thị cả đồ họa 2-D và 3-D.
Để kết xuất đồ họa, Prism sử dụng:
- DirectX 9 trên Windows XP và Vista.
- DirectX 11 trên Windows 7.
- OpenGL trên Mac và Linux, Hệ thống nhúng.
Trong trường hợp phần cứng hỗ trợ đồ họa trên hệ thống không đủ, thì Prism sử dụng đường dẫn kết xuất phần mềm để xử lý đồ họa.
Khi được sử dụng với Card đồ họa hoặc GPU được hỗ trợ, nó mang lại đồ họa mượt mà hơn. Chỉ trong trường hợp hệ thống không hỗ trợ cạc đồ họa, thì Prism sẽ mặc định đặt ngăn xếp kết xuất phần mềm (một trong hai cách trên).
GWT (Bộ công cụ chắn gió bằng kính)
Như tên cho thấy, GWT cung cấp các dịch vụ để quản lý Windows, Bộ hẹn giờ, Bề mặt và Hàng đợi Sự kiện. GWT kết nối Nền tảng JavaFX với Hệ điều hành gốc.
Bộ công cụ lượng tử
Nó là sự trừu tượng so với các thành phần cấp thấp của Prism, Glass, Media Engine và Web Engine. Nó liên kết Prism và GWT với nhau và cung cấp chúng cho JavaFX.
WebView
Sử dụng JavaFX, bạn cũng có thể nhúng nội dung HTML vào biểu đồ cảnh. WebView là thành phần của JavaFX được sử dụng để xử lý nội dung này. Nó sử dụng một công nghệ được gọi làWeb Kit, là một công cụ trình duyệt web mã nguồn mở nội bộ. Thành phần này hỗ trợ các công nghệ web khác nhau như HTML5, CSS, JavaScript, DOM và SVG.
Sử dụng WebView, bạn có thể -
- Hiển thị nội dung HTML từ URL cục bộ hoặc từ xa.
- Hỗ trợ lịch sử và cung cấp điều hướng Quay lại và Chuyển tiếp.
- Tải lại nội dung.
- Áp dụng các hiệu ứng cho thành phần web.
- Chỉnh sửa nội dung HTML.
- Thực thi các lệnh JavaScript.
- Xử lý các sự kiện.
Nói chung, sử dụng WebView, bạn có thể kiểm soát nội dung web từ Java.
Công cụ truyền thông
Các JavaFX media engine dựa trên một công cụ mã nguồn mở được gọi là Streamer. Công cụ phương tiện này hỗ trợ phát lại nội dung video và âm thanh.
Công cụ phương tiện JavaFX cung cấp hỗ trợ âm thanh cho các định dạng tệp sau:
Audio |
|
---|---|
Video |
|
Gói javafx.scene.mediachứa các lớp và giao diện để cung cấp chức năng phương tiện trong JavaFX. Nó được cung cấp dưới dạng ba thành phần, đó là:
Media Object - Điều này đại diện cho một tệp phương tiện
Media Player - Để phát nội dung media.
Media View - Để hiển thị phương tiện.