Một ứng dụng JavaFX thông thường có 3 thành phần chính: Stage, Scene và Nodes.
Stage (Cửa sổ)
Stage chứa tất cả các đối tượng của ứng dụng JavaFX. Được đại diện bởi lớp Stage trong gói javafx.stage. Bạn phải gọi phương thức show() để hiển thị nội dung của Stage.
Scene Graph (Đồ thị cảnh)
Scene graph là cấu trúc dữ liệu dạng cây, là tập hợp các node. Trong JavaFX, lớp javafx.scene.Scene chứa toàn bộ nội dung của scene graph.
- Khi tạo Scene, bắt buộc phải chỉ định root node.
- Trong một lần chạy, Scene object chỉ được thêm vào một Stage duy nhất.
Nodes (Các nút)
Node là đối tượng trực quan/đồ họa cơ bản của ứng dụng JavaFX.
Ví dụ: Đối tượng hình học 2D/3D (hình tròn, cầu...), điều khiển UI (button, checkbox...), container/layout (BorderPane, GridPane...), media (audio, video, image...).
Mỗi node trong scene graph có một parent duy nhất. Node không có parent gọi là root node. Node không có children gọi là leaf node; node có children gọi là branch node.
Các loại Root Node phổ biến
- Group - Node tập hợp chứa danh sách children. Khi render, tất cả children được render theo thứ tự. Transform, effect áp dụng cho Group sẽ áp dụng cho tất cả children.
- Region - Lớp cơ sở của tất cả UI Controls dựa trên Node như Chart, Pane, Control.
- WebView - Node quản lý web engine và hiển thị nội dung.
- Leaf Node - Node không có children. Ví dụ: Rectangle, Ellipse, Box, ImageView, MediaView.
