Bài 4: Mô hình kiến trúc JavaFx

JavaFX cung cấp các API hoàn chỉnh bao gồm tập các lớp và giao diện phong phú để xây dựng các ứng dụng với đồ họa đẹp mắt. Nội dung của bài viết này sẽ trình bày mô hình kiến trúc JavaFx nhằm đem lại góc nhìn cơ bản cho những bạn mới bắt đầu tìm hiểu về JavaFx.

Hình minh họa dưới đây sẽ mô tả về mô hình kiến trúc JavaFx:

1. Scene Graph

– Scene Graph đóng vai trò là điểm xuất phát của việc xây dựng giao diện ứng dụng.

– Mỗi phần tử trong Scene Graph được gọi là một nút (Node).

– Stage là một cửa sổ màn hình với các nút đặc trưng minimize, maximize và close.

– Bên trong Stage chứa đối tượng Scene.

– Bên trong Scene chứa các nút (Node) chẳng hạn như AnchorPane, TextBox…

– Không giống như trong Swing hay Abstract Window Toolkit (AWT),

2. Java Public APIs for JavaFX Features

– Cho phép sử dụng các tính năng Java mạnh mẽ chẳng hạn như generics, annotations và multithreading.

– Cho phép các nhà phát triển Java sử dụng các ngôn ngữ hệ thống khác chẳng hạn như Groovy để viết các ứng dụng JavaFX lớn hoặc phức tạp hơn.

– Mở rộng bộ thư viện Java để có thêm các thành phần như observable lists, maps.

3. Graphics System

– Prism: được sử dụng để kết xuất đồ họa trong JavaFX, nó có thể kết xuất (render) đồ họa cả 2-D và 3-D. Để render đồ họa một Prism sử dụng DirectX 9 trên Windows XP và Vista, DirectX 11 trên Windows 7, OpenGL trên Mac, Linux và Embedded Systems. Trong trường hợp phần cứng xử lý đồ họa trên hệ thống là không đủ thì Prism sử dụng phần mềm để xử lý đồ họa.

– Quantum Toolkit: kết hợp thành phần Prism và GWT với nhau. Nó là một sự trừu tượng hóa đối với các thành phần cấp thấp của Prism, Glass, Media Engine và Web Engine.

4. Glass Windowing Toolkit

– GWT cung cấp dịch vụ để quản lý Windows, Timers, Surfaces và Event Queues.

– GWT kết nối nền tảng JavaFX với Native Operating System.

5. Media and Images

– JavaFX cung cấp API hỗ trợ Media và Images.

– Hỗ trợ cho các tệp âm thanh định dạng MP3, AIFF, WAV và video định dạng FLV.

6. CSS

– Trong JavaFx cho phép các lập trình viên có thể sử dụng Cascading Style Sheets (CSS) để tùy chỉnh giao diện người dùng mà không thay đổi bất kỳ mã nguồn của ứng dụng đó.

7. UI Controls

– UI Controls trong JavaFx là các thành phần được sử dụng rất nhiều trong mỗi ứng dụng.

– UI Controls cho phép định nghĩa bằng CSS

8. Layout

Layout trong JavaFx bao gồm một số thành phần sau đây:

STTLoại layoutMô tả
1HBOX trong JavaFxLớp HBox đặt các nút con trong JavaFX theo chiều ngang, các nút con mới được được sắp xếp từ trái sang phải.
2VBOX trong JavaFxKhác với HBox trong JavaFx thì thành phần VBox trong JavaFx là một thành phần bố trí đặt tất cả các nút theo hàng dọc.
3TitledPane trong JavaFxTilePane trong JavaFX là một thành phần layout bố trí các thành phần con của nó theo dạng lưới với các ô có kích thước bằng nhau.
4FlowPane trong JavaFxFlowPane trong JavaFX là một thành phần layout giúp bố trí các thành phần con của nó theo chiều dọc hoặc chiều ngang. FlowPane trong JavaFX có thể tự động canh chỉnh nếu không có đủ không gian hiển thị.
5GridPane trong JavaFxHBOX trong JavaFxGridPane trong JavaFX là một thành phần layout bố trí các thành phần con của nó theo dạng lưới, kích thước của ô trong lưới phụ thuộc vào các thành phần được hiển thị trong GridPane và được tuân thủ theo một số quy tắc nhất định.
6ScrollPane trong JavaFx(đang cập nhật…)
7Accordion trong JavaFx(đang cập nhật…)

9. Visual Effects

– Để giúp ứng dụng trở nên sinh động và phong cách hơn thì JavaFX hỗ trợ hiệu ứng Visual Effects.

– Một số hiệu ứng trong JavaFx bao gồm Drop Shadow, Reflection, Lighting.

10. WebView

– Trong JavaFX cho phép bạn có thể nhúng nội dung HTML vào Scene Graph.

– WebView sử dụng một công nghệ gọi là Web Kit, một công cụ trình duyệt web mã nguồn mở.

– Hỗ trợ đầy đủ các công nghệ web khác nhau như HTML5, CSS, JavaScript, DOM và SVG.

Lời kết: Như vậy, qua bài viết này cung cấp cho bạn một vài kiến thức cơ bản về mô hình kiến trúc JavaFx. Ngoài ra, hãy xem thêm một số bài viết thuộc chuyên mục JavaFx để tìm hiểu thêm về ngôn ngữ này.

(Tác giả: Tùng Dương)

2 thoughts on “Bài 4: Mô hình kiến trúc JavaFx

  1. Bài viết của bạn rất hay.
    Đề nghị bạn giới thiệu thêm về ObjectProperty và các thành phần mở rộng thư viện của Java như observable lists, maps.
    Cảm ơn bạn.

Bình luận

Loading...