CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-com-miglayout--miglayout-swing

MiGLayout Swing implementation providing constraint-based layout management for Java Swing applications

Pending
Overview
Eval results
Files

constraint-configuration.mddocs/

Constraint Configuration

Structured constraint objects from the core module providing programmatic layout configuration as type-safe alternatives to string-based constraints. These classes enable detailed control over layout behavior, column/row specifications, and individual component positioning through fluent builder APIs.

Capabilities

LC (Layout Constraints)

Layout constraint object containing configuration for the entire layout manager instance with both property-based and fluent builder APIs.

/**
 * Contains the constraints for an instance of the MigLayout layout manager.
 * Provides programmatic alternative to string-based layout constraints.
 */
public class LC implements Externalizable {
    
    /**
     * Empty constructor creating default layout constraints.
     */
    public LC();
}

Property-Based Configuration

Direct property access methods for layout configuration.

// Cache control
public boolean isNoCache();
public void setNoCache(boolean b);

// Flow direction
public final boolean isFlowX();
public final void setFlowX(boolean b);

// Fill behavior  
public final boolean isFillX();
public final void setFillX(boolean b);
public final boolean isFillY();
public final void setFillY(boolean b);

// Alignment
public final UnitValue getAlignX();
public final void setAlignX(UnitValue uv);
public final UnitValue getAlignY();
public final void setAlignY(UnitValue uv);

// Layout flow
public final boolean isTopToBottom();
public final void setTopToBottom(boolean b);
public final Boolean getLeftToRight();
public final void setLeftToRight(Boolean b);

// Visual padding
public final boolean isVisualPadding();
public final void setVisualPadding(boolean b);

// Grid behavior
public final boolean isNoGrid();
public final void setNoGrid(boolean b);

// Wrap behavior
public final int getWrapAfter();
public final void setWrapAfter(int count);

// Hide mode
public final int getHideMode();
public final void setHideMode(int mode);

// Debug support
public final int getDebugMillis();
public final void setDebugMillis(int millis);

// Insets
public final UnitValue[] getInsets();
public final void setInsets(UnitValue[] ins);

// Grid gaps
public final BoundSize getGridGapX();
public final void setGridGapX(BoundSize x);
public final BoundSize getGridGapY();
public final void setGridGapY(BoundSize y);

// Container sizing
public final BoundSize getWidth();
public final void setWidth(BoundSize size);
public final BoundSize getHeight();
public final void setHeight(BoundSize size);

// Pack sizing
public final BoundSize getPackWidth();
public final void setPackWidth(BoundSize size);
public final BoundSize getPackHeight();
public final void setPackHeight(BoundSize size);
public final float getPackWidthAlign();
public final void setPackWidthAlign(float align);
public final float getPackHeightAlign();
public final void setPackHeightAlign(float align);

Fluent Builder API

Chainable configuration methods returning this for method chaining.

// Basic layout
public final LC wrap();
public final LC wrapAfter(int count);
public final LC noCache();
public final LC flowX();
public final LC flowY();
public final LC fill();
public final LC fillX();
public final LC fillY();
public final LC leftToRight(boolean b);
public final LC rightToLeft();
public final LC topToBottom();
public final LC bottomToTop();
public final LC noGrid();
public final LC noVisualPadding();

// Pack sizing
public final LC pack();
public final LC pack(String width, String height);
public final LC packAlign(float alignX, float alignY);

// Container sizing
public final LC minWidth(String width);
public final LC width(String width);
public final LC maxWidth(String width);
public final LC minHeight(String height);
public final LC height(String height);
public final LC maxHeight(String height);

// Insets
public final LC insetsAll(String allSides);
public final LC insets(String s);
public final LC insets(String top, String left, String bottom, String right);

// Alignment
public final LC alignX(String align);
public final LC alignX(AlignX align);
public final LC alignY(String align);
public final LC alignY(AlignY align);
public final LC align(String ax, String ay);

// Grid gaps
public final LC gridGapX(String boundsSize);
public final LC gridGapY(String boundsSize);
public final LC gridGap(String gapx, String gapy);

// Debug
public final LC debug();
public final LC debug(int repaintMillis);

// Hide mode
public final LC hideMode(HideMode mode);
public final LC hideMode(int mode);

AC (Axis Constraints)

Axis constraint object holding column or row constraints with fluent builder API for grid configuration.

/**
 * A constraint that holds the column or row constraints for the grid.
 * This class is a holder and builder for a number of DimConstraints.
 */
public class AC implements Externalizable {
    
    /**
     * Constructor creating instance that can be configured manually.
     * Will be initialized with a default DimConstraint.
     */
    public AC();
    
    /**
     * Returns the different DimConstraints that this object consists of.
     * @return The different DimConstraints. A new array and never null.
     */
    public final DimConstraint[] getConstraints();
    
    /**
     * Sets the different DimConstraints that this object should consist of.
     * @param constr The different DimConstraints. The array will be copied for storage.
     * null or empty array will reset the constraints to one DimConstraint with default values.
     */
    public final void setConstraints(DimConstraint[] constr);
    
    /**
     * Returns the number of DimConstraints.
     * @return The number of DimConstraints.
     */
    public int getCount();
}

Fluent Builder Methods

Chainable configuration methods for axis constraints.

// Basic operations
public final AC count(int size);
public final AC noGrid();
public final AC noGrid(int... indexes);
public final AC index(int i);
public final AC fill();
public final AC fill(int... indexes);

// Size configuration
public final AC size(String s);
public final AC size(String size, int... indexes);

// Gap configuration
public final AC gap();
public final AC gap(String size);
public final AC gap(String size, int... indexes);

// Alignment
public final AC align(String side);
public final AC align(String side, int... indexes);

// Size groups
public final AC sizeGroup();
public final AC sizeGroup(String s);
public final AC sizeGroup(String s, int... indexes);

// Grow behavior
public final AC growPrio(int p);
public final AC growPrio(int p, int... indexes);
public final AC grow();
public final AC grow(float w);
public final AC grow(float w, int... indexes);

// Shrink behavior
public final AC shrinkPrio(int p);
public final AC shrinkPrio(int p, int... indexes);
public final AC shrink();
public final AC shrink(float w);
public final AC shrink(float w, int... indexes);

// Deprecated methods (still part of public API)
@Deprecated
public final DimConstraint[] getConstaints();
@Deprecated 
public final void setConstaints(DimConstraint[] constr);
@Deprecated
public final AC shrinkWeight(float w);
@Deprecated
public final AC shrinkWeight(float w, int... indexes);

CC (Component Constraints)

Component constraint object for individual component positioning and sizing with comprehensive fluent builder API.

/**
 * A simple value holder for one component's constraint.
 * Provides programmatic alternative to string-based component constraints.
 */
public class CC implements Externalizable {
    
    /**
     * Empty constructor creating default component constraints.
     */
    public CC();
}

Property Access Methods

Direct property access for component constraints.

// Position and cell
public int getCellX();
public void setCellX(int x);
public int getCellY();
public void setCellY(int y);
public UnitValue[] getPos();
public void setPos(UnitValue[] pos);

// Span
public int getSpanX();
public void setSpanX(int cells);
public int getSpanY();
public void setSpanY(int cells);

// Docking
public int getDockSide();
public void setDockSide(int side);

// Flow
public Boolean getFlowX();
public void setFlowX(Boolean b);

// Skip and split
public int getSkip();
public void setSkip(int cells);
public int getSplit();
public void setSplit(int parts);

// Hide mode
public int getHideMode();
public void setHideMode(int mode);

// ID and tag
public String getId();
public void setId(String id);
public String getTag();
public void setTag(String tag);

// Push weights
public Float getPushX();
public void setPushX(Float weight);
public Float getPushY();
public void setPushY(Float weight);

// Padding
public UnitValue[] getPadding();
public void setPadding(UnitValue[] sides);
public UnitValue[] getVisualPadding();
public void setVisualPadding(UnitValue[] sides);

// Bounds and external
public boolean isBoundsInGrid();
public void setBoundsInGrid(boolean b);
public boolean isExternal();
public void setExternal(boolean b);

// Wrap and newline
public boolean isWrap();
public void setWrap(boolean b);
public BoundSize getWrapGapSize();
public void setWrapGapSize(BoundSize s);
public boolean isNewline();
public void setNewline(boolean b);
public BoundSize getNewlineGapSize();
public void setNewlineGapSize(BoundSize s);

// Dimension constraints
public DimConstraint getHorizontal();
public void setHorizontal(DimConstraint h);
public DimConstraint getVertical();
public void setVertical(DimConstraint v);
public DimConstraint getDimConstraint(boolean isHor);

// Animation
public AnimSpec getAnimSpec();

Fluent Builder Methods

Comprehensive fluent API for component constraint configuration.

// Size groups
public final CC endGroupX(String s);
public final CC endGroupY(String s);
public final CC endGroup(String ... xy);
public final CC sizeGroupX(String s);  
public final CC sizeGroupY(String s);
public final CC sizeGroup(String ... xy);

// Width and height
public final CC minWidth(String size);
public final CC width(String size);
public final CC maxWidth(String size);
public final CC minHeight(String size);
public final CC height(String size);
public final CC maxHeight(String size);

// Gaps
public final CC gapX(String before, String after);
public final CC gapY(String before, String after);
public final CC gap(String ... args);
public final CC gapBefore(String boundsSize);
public final CC gapAfter(String boundsSize);
public final CC gapTop(String boundsSize);
public final CC gapLeft(String boundsSize);
public final CC gapBottom(String boundsSize);
public final CC gapRight(String boundsSize);

// Alignment
public final CC alignX(String align);
public final CC alignX(AlignX align);
public final CC alignY(String align);
public final CC alignY(AlignY align);

// Grow behavior
public final CC growPrioX(int p);
public final CC growPrioY(int p);
public final CC growPrio(int ... widthHeight);
public final CC growX();
public final CC growX(float w);
public final CC growY();
public final CC growY(float w);
public final CC grow();
public final CC grow(float ... widthHeight);

// Deprecated methods (still part of public API)
@Deprecated
public final CC growY(Float w);

// Shrink behavior
public final CC shrinkPrioX(int p);
public final CC shrinkPrioY(int p);
public final CC shrinkPrio(int ... widthHeight);
public final CC shrinkX(float w);
public final CC shrinkY(float w);
public final CC shrink(float ... widthHeight);

// Cell position and span
public final CC cell(int ... colRowWidthHeight);
public final CC span(int ... cells);
public final CC spanX();
public final CC spanX(int cells);
public final CC spanY();
public final CC spanY(int cells);

// Push weights
public final CC push();
public final CC push(Float weightX, Float weightY);
public final CC pushX();
public final CC pushX(Float weight);
public final CC pushY();
public final CC pushY(Float weight);

// Split and skip
public final CC split();
public final CC split(int parts);
public final CC skip();
public final CC skip(int cells);

// Flow control
public final CC flowX();
public final CC flowY();
public final CC external();

// Wrap and newline
public final CC wrap();
public final CC wrap(String gapSize);
public final CC newline();
public final CC newline(String gapSize);

// Docking
public final CC dockNorth();
public final CC dockWest();
public final CC dockSouth();
public final CC dockEast();

// Absolute positioning
public final CC x(String x);
public final CC y(String y);
public final CC x2(String x2);
public final CC y2(String y2);
public final CC pos(String x, String y);
public final CC pos(String x, String y, String x2, String y2);

// Padding
public final CC pad(int top, int left, int bottom, int right);
public final CC pad(String pad);

// ID and tag
public final CC id(String s);
public final CC tag(String tag);
public final CC hideMode(int mode);

DimConstraint

Individual dimension constraint used within AC objects for detailed column/row configuration.

/**
 * A constraint for one dimension (column or row).
 * Contains size, gap, alignment, and other properties for a single grid dimension.
 */
public class DimConstraint implements Externalizable {
    
    /**
     * Empty constructor creating default dimension constraint.
     */
    public DimConstraint();
    
    // Size constraint
    public BoundSize getSize();
    public void setSize(BoundSize size);
    
    // Grow/shrink behavior
    public int getGrowPriority();
    public void setGrowPriority(int p);
    public Float getGrow();
    public void setGrow(Float weight);
    public int getShrinkPriority();
    public void setShrinkPriority(int p);
    public Float getShrink();
    public void setShrink(Float weight);
    
    // Alignment
    public UnitValue getAlign();
    public void setAlign(UnitValue uv);
    public UnitValue getAlignOrDefault(boolean isCols);
    
    // Gaps
    public BoundSize getGapAfter();
    public void setGapAfter(BoundSize size);
    public BoundSize getGapBefore();
    public void setGapBefore(BoundSize size);
    
    // Groups
    public String getSizeGroup();
    public void setSizeGroup(String s);
    public String getEndGroup();
    public void setEndGroup(String s);
    
    // Fill and grid behavior
    public boolean isFill();
    public void setFill(boolean b);
    public boolean isNoGrid();
    public void setNoGrid(boolean b);
}

Enums

Important enumeration types used in constraint configuration.

/**
 * Horizontal alignment enumeration for X-axis positioning.
 */
public enum AlignX {
    LEADING("leading"), 
    LEFT("left"), 
    CENTER("center"), 
    RIGHT("right"), 
    TRAILING("trailing");
    
    /**
     * Returns the string code for this alignment.
     * @return The string representation used in constraints.
     */
    public String code();
}

/**
 * Vertical alignment enumeration for Y-axis positioning.
 */
public enum AlignY {
    TOP("top"), 
    CENTER("center"), 
    BOTTOM("bottom"), 
    BASELINE("baseline");
    
    /**
     * Returns the string code for this alignment.
     * @return The string representation used in constraints.
     */
    public String code();
}

/**
 * Hide mode enumeration for component visibility behavior.
 */
public enum HideMode {
    NORMAL(0), 
    SIZE_0_RETAIN_GAPS(1), 
    SIZE_0_GAPS_0(2), 
    DISREGARD(3);
    
    /**
     * Returns the numeric code for this hide mode.
     * @return The integer code used internally.
     */
    public int getCode();
    
    /**
     * Returns the HideMode for the specified code.
     * @param code The integer code to lookup.
     * @return The corresponding HideMode enum value.
     */
    public static HideMode of(int code);
}

Constants

// Dock sides constants in CC class
public static final String[] DOCK_SIDES = {"north", "west", "south", "east"};

Usage Examples:

import net.miginfocom.layout.*;
import net.miginfocom.layout.AlignX;
import net.miginfocom.layout.AlignY;
import net.miginfocom.layout.HideMode;
import net.miginfocom.swing.MigLayout;
import javax.swing.*;

// Layout constraints using fluent API
LC layoutConstraints = new LC()
    .flowX()              // Horizontal flow
    .fillY()              // Fill vertically
    .wrap()               // Enable wrapping
    .insets("10")         // Set insets
    .debug();             // Enable debug

// Column constraints using fluent API
AC columnConstraints = new AC()
    .count(3)             // Three columns
    .fill(0)              // First column fills
    .size("100px", 1)     // Second column fixed 100px
    .grow(1.0f, 2);       // Third column grows

// Row constraints
AC rowConstraints = new AC()
    .gap("5px")           // 5px gaps between rows
    .align("top");        // Top alignment

// Create layout with programmatic constraints
MigLayout layout = new MigLayout(layoutConstraints, columnConstraints, rowConstraints);
JPanel panel = new JPanel(layout);

// Component constraints using fluent API
CC buttonConstraints = new CC()
    .cell(0, 0, 2, 1)     // Position and span
    .pushX()              // Push horizontally
    .growX()              // Grow horizontally
    .id("submitButton")   // Set ID for linking
    .tag("form")          // Set tag for grouping
    .alignX(AlignX.CENTER); // Center alignment using enum

JButton button = new JButton("Submit");
panel.add(button, buttonConstraints);

// Complex component constraints with method chaining
CC textFieldConstraints = new CC()
    .cell(0, 1)           // Cell position
    .spanX(3)             // Span 3 columns
    .growX()              // Grow horizontally
    .pad("5", "10", "5", "10")  // Padding
    .gapAfter("10px")     // Gap after component
    .hideMode(HideMode.SIZE_0_GAPS_0.getCode()) // Hide mode using enum
    .sizeGroupX("inputs") // Size group
    .pushX(0.5f);         // Push weight

JTextField textField = new JTextField();
panel.add(textField, textFieldConstraints);

// Docking constraints
CC toolbarConstraints = new CC()
    .dockNorth()          // Dock to north
    .growX();             // Grow horizontally

JToolBar toolbar = new JToolBar();
panel.add(toolbar, toolbarConstraints);

Install with Tessl CLI

npx tessl i tessl/maven-com-miglayout--miglayout-swing

docs

component-integration.md

constraint-configuration.md

index.md

layout-management.md

tile.json