DervaFX Wiki
Core Concepts
Wrappers, Not a New UI Engine
DervaFX wraps normal JavaFX nodes. Each DervaFX element owns a JavaFX node internally and exposes a chainable API for common UI setup.
DervaElement<T>
This is the base type for most of the library. Shared helpers include:
position(double x, double y)size(double width, double height)minSize(double width, double height)maxSize(double width, double height)padding(Insets insets)padding(double value)spacing(double value)align(Pos pos)fillWidth()fillHeight()text(String value)visible(boolean value)enabled(boolean value)cssClass(String className)style(String inlineStyle)anchorFill()
Root vs Content Node
Each element has a wrapper root node returned by getNode() and an
internal content node used by the implementation. That matters for layout and
drag behavior. For example, DervaWindow moves its wrapper root
rather than the internal VBox.
Factory Entry Point
DervaRoot root = DervaFX.root();
DervaFX.setTheme(DervaTheme.derma());
DervaWindow window = DervaFX.window("Base Window")
.position(24, 24)
.size(360, 220);
window.add(
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("Click me"), 1, 2)
);
root.add(window);