DervaFX Wiki

Quick Start

A normal setup is: create a JavaFX host pane, create a DervaRoot, add windows or layouts, apply the DervaFX theme, and show the stage normally.

Minimal App

package com.example;

import com.princeofcookies.dervafx.DervaFX;
import com.princeofcookies.dervafx.DervaGrid;
import com.princeofcookies.dervafx.DervaRoot;
import com.princeofcookies.dervafx.DervaTheme;
import com.princeofcookies.dervafx.DervaWindow;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;

public final class ExampleApp extends Application {
    @Override
    public void start(Stage stage) {
        AnchorPane host = new AnchorPane();

        DervaRoot root = DervaFX.root().anchorFill();
        host.getChildren().add(root.getNode());
        AnchorPane.setTopAnchor(root.getNode(), 0.0);
        AnchorPane.setRightAnchor(root.getNode(), 0.0);
        AnchorPane.setBottomAnchor(root.getNode(), 0.0);
        AnchorPane.setLeftAnchor(root.getNode(), 0.0);

        DervaFX.setTheme(DervaTheme.derma());

        DervaWindow window = DervaFX.window("Example")
            .position(24, 24)
            .size(320, 200);

        DervaGrid grid = DervaFX.grid()
            .hgap(8)
            .vgap(8)
            .add(DervaFX.label("Project"), 0, 0)
            .add(DervaFX.textField().prompt("Project name"), 1, 0)
            .add(DervaFX.checkBox("Remember layout"), 0, 1, 2, 1)
            .add(DervaFX.button("Test"), 1, 2);

        window.add(grid);

        root.add(window);

        Scene scene = new Scene(host, 900, 600);
        DervaFX.applyTheme(scene);

        stage.setScene(scene);
        stage.show();
    }
}