Responsive Before The Web Term Existed
The chart frame, axes, labels, legend, title, and data marks are treated as negotiated parts of a layout rather than fixed pixels.
Chart2D 2.0
Chart2D still grows charts from preferred and model sizes, expands elements proportionally as space increases, and degrades gracefully when space is constrained. The 2.0 release keeps that behavior intact while modernizing the codebase, docs, and release packaging.
50
Rendered regression images published in the gallery, including LB, LL, and Pie at launch size and 1080p.
API Preserved
The public library surface stays intact so existing applications do not need a rewrite for the 2.0 release.
Java 21 Ready
Current release artifacts, updated docs, and modernization work were validated on a modern Java toolchain.
Chart2D is not just a drawing toolkit. Its strongest idea is the layout engine: it measures from the inside out, uses preferred and model sizes to determine minimum viable layout, expands elements proportionally, and gracefully removes secondary detail when there is not enough room.
The chart frame, axes, labels, legend, title, and data marks are treated as negotiated parts of a layout rather than fixed pixels.
When space is insufficient, the library de-emphasizes or removes optional detail rather than simply overlapping, clipping unpredictably, or failing.
The public API remains familiar, while the modernized release consolidates duplicated internals, refreshes documentation, and cleans up compatibility issues for current Java.
Includes source, demos, tutorial, javadocs, and release notes in the classic release layout.
For projects that only need the binary artifact, the standalone jar is published directly alongside the full package.
The updated 2.0 tutorial covers the library structure, usage patterns, and current validation behavior.
Generated 2.0 API docs reflect the preserved public API and the behavior clarifications added during modernization.
Enabled legends now validate false when labels are blank, while rendering still behaves defensively to avoid hard failure on bad settings.
Negative pie values validate false. Rendering clamps them defensively, but the invalid configuration is still surfaced through validation.