JAVA - Zero to Hero / JAVA GUI Development

JavaFX Overview

📥 What is JavaFX?

  • JavaFX is a modern GUI framework for Java used to build rich desktop applications.

  • It is the successor to Swing and offers features like hardware-accelerated graphics, CSS styling, FXML for UI design, and media support.


🔧 Core Features

  • Scene Graph Architecture

    ➤ Organizes UI components in a tree-like structure (called a scene graph).

  • FXML Support

    ➤ XML-based language used to design the UI separately from logic (similar to HTML + JS approach).

  • CSS Styling

    ➤ JavaFX allows UI components to be styled using CSS, improving maintainability and design.

  • Media Integration

    ➤ Built-in support for audio, video, and web content.

  • 3D Graphics & Effects

    ➤ Supports 2D and 3D shapes, animations, shadows, and more.


🧱 JavaFX Components

  • Stage

    ➤ Represents the main window.

  • Scene

    ➤ Container for all content in the Stage.

  • Nodes

    ➤ UI elements like Button, Label, TextField, etc.

  • Layouts (Panes)

    ➤ Containers like VBox, HBox, BorderPane, GridPane, used for arranging nodes.


🔄 JavaFX Lifecycle

  1. Launch Application → Using Application.launch()

  2. Start Method → Override start(Stage primaryStage)

  3. Build UI → Create layout, components, and assign to a Scene

  4. Display Stage → Use stage.show() to render the window


🎨 Styling with CSS

  • JavaFX allows external or inline CSS styling:

    • Example: fx-background-color: lightblue;

  • Keeps design and logic separate.


💡 Benefits Over Swing

Feature

JavaFX

Swing

UI Design Tool

Scene Builder

No built-in tool

Styling

CSS support

Manual styling

Layout

Modern layouts

Old layout system

Animation

Built-in

Not native

Separation of UI

FXML

Only Java


✅ When to Use JavaFX?

  • Ideal for modern desktop apps, UI prototyping, cross-platform GUIs, or apps needing media & animation support.