java.lang.Object
is.codion.swing.common.ui.layout.FlexibleGridLayout
- All Implemented Interfaces:
LayoutManager
,LayoutManager2
A layout manager similar to GridLayout, but allows components to maintain their preferred size.
Rows and columns can optionally be normalized to the largest size in their dimension.
Designed in Codion style with a fluent builder API.
Features: - Optional fixed row heights or column widths. - Custom horizontal and vertical gaps. - Maintains preferred component sizes when not fixed. - Safe for variable component counts and nested containers.
Author: Björn Darri Sigurðsson (with help)
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionvoid
addLayoutComponent
(Component comp, Object constraints) void
addLayoutComponent
(String name, Component comp) static FlexibleGridLayout.Builder
builder()
Returns a new builder instance for FlexibleGridLayout.float
getLayoutAlignmentX
(Container target) float
getLayoutAlignmentY
(Container target) void
invalidateLayout
(Container target) void
layoutContainer
(Container parent) maximumLayoutSize
(Container target) minimumLayoutSize
(Container parent) preferredLayoutSize
(Container parent) void
-
Method Details
-
builder
Returns a new builder instance for FlexibleGridLayout.- Returns:
- a builder
-
layoutContainer
- Specified by:
layoutContainer
in interfaceLayoutManager
-
preferredLayoutSize
- Specified by:
preferredLayoutSize
in interfaceLayoutManager
-
minimumLayoutSize
- Specified by:
minimumLayoutSize
in interfaceLayoutManager
-
addLayoutComponent
- Specified by:
addLayoutComponent
in interfaceLayoutManager2
-
addLayoutComponent
- Specified by:
addLayoutComponent
in interfaceLayoutManager
-
removeLayoutComponent
- Specified by:
removeLayoutComponent
in interfaceLayoutManager
-
maximumLayoutSize
- Specified by:
maximumLayoutSize
in interfaceLayoutManager2
-
getLayoutAlignmentX
- Specified by:
getLayoutAlignmentX
in interfaceLayoutManager2
-
getLayoutAlignmentY
- Specified by:
getLayoutAlignmentY
in interfaceLayoutManager2
-
invalidateLayout
- Specified by:
invalidateLayout
in interfaceLayoutManager2
-