or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

component-integration.mdconstraint-configuration.mdindex.mdlayout-management.md
tile.json

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

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

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/com.miglayout/miglayout-swing@11.4.x

To install, run

npx @tessl/cli install tessl/maven-com-miglayout--miglayout-swing@11.4.0

index.mddocs/

MiGLayout Swing

MiGLayout Swing provides a constraint-based layout manager for Java Swing applications. It enables developers to create sophisticated layouts using string-based or programmatic constraints, supporting flowing, grid-based, absolute, grouped, and docking layouts with automatic per-platform fidelity.

Package Information

  • Package Name: miglayout-swing
  • Package Type: maven
  • Language: Java
  • Installation: <dependency><groupId>com.miglayout</groupId><artifactId>miglayout-swing</artifactId><version>11.4.1</version></dependency>
  • Module: com.miglayout.swing

Core Imports

import net.miginfocom.swing.MigLayout;
import net.miginfocom.layout.LC;
import net.miginfocom.layout.AC; 
import net.miginfocom.layout.CC;

Basic Usage

import net.miginfocom.swing.MigLayout;
import javax.swing.*;

// Basic setup with string constraints
JPanel panel = new JPanel(new MigLayout("wrap 2", "[grow]", "[][]"));

// Add components with constraints
panel.add(new JLabel("Name:"), "align right");
panel.add(new JTextField(15), "growx");
panel.add(new JLabel("Email:"), "align right");
panel.add(new JTextField(15), "growx");
panel.add(new JButton("Submit"), "span 2, center");

// Alternative programmatic approach
MigLayout layout = new MigLayout();
layout.setLayoutConstraints("wrap 2");
layout.setColumnConstraints("[grow]");
layout.setRowConstraints("[][]");

JPanel programmaticPanel = new JPanel(layout);

Architecture

MiGLayout Swing is built around several key components:

  • Layout Manager: MigLayout class implementing LayoutManager2 for Swing integration
  • Component Wrappers: Adapter classes (SwingComponentWrapper, SwingContainerWrapper) that bridge Swing components with the MiGLayout engine
  • Constraint Objects: Structured constraint classes (LC, AC, CC) from the core module for programmatic layout definition
  • Grid System: Internal grid-based layout calculation engine with support for spanning, gaps, and alignment
  • Debug Visualization: Built-in debug capabilities for layout troubleshooting and optimization

Capabilities

Layout Management

Primary layout manager implementation providing constraint-based positioning and sizing for Swing containers.

public class MigLayout implements LayoutManager2, Externalizable {
    // String-based constructors
    public MigLayout();
    public MigLayout(String layoutConstraints);
    public MigLayout(String layoutConstraints, String colConstraints);
    public MigLayout(String layoutConstraints, String colConstraints, String rowConstraints);
    
    // Programmatic constructors  
    public MigLayout(LC layoutConstraints);
    public MigLayout(LC layoutConstraints, AC colConstraints);
    public MigLayout(LC layoutConstraints, AC colConstraints, AC rowConstraints);
}

Layout Management

Component Integration

Component wrapper system providing seamless integration between Swing components and the MiGLayout constraint system.

public class SwingComponentWrapper implements ComponentWrapper {
    public SwingComponentWrapper(Component c);
    public Object getComponent();
    public int getBaseline(int width, int height);
    public float getPixelUnitFactor(boolean isHor);
}

public final class SwingContainerWrapper extends SwingComponentWrapper implements ContainerWrapper {
    public SwingContainerWrapper(Container c);
    public ComponentWrapper[] getComponents();
    public int getComponentCount();
}

Component Integration

Constraint Configuration

Structured constraint objects for programmatic layout configuration, providing type-safe alternatives to string-based constraints.

// Layout constraints (from core module)
public class LC implements Externalizable {
    public LC();
    // Configuration methods for layout-level settings
}

// Axis constraints for columns/rows (from core module)  
public class AC implements Externalizable {
    public AC();
    // Configuration methods for column/row constraints
}

// Component constraints (from core module)
public class CC implements Externalizable {
    public CC();
    // Configuration methods for individual component constraints
}

Constraint Configuration

Types

// Component type constants
interface ComponentWrapper {
    int TYPE_UNSET = -1;
    int TYPE_UNKNOWN = 0;
    int TYPE_CONTAINER = 1;
    int TYPE_LABEL = 2;
    int TYPE_TEXT_FIELD = 3;
    int TYPE_TEXT_AREA = 4;
    int TYPE_BUTTON = 5;
    int TYPE_CHECK_BOX = 6;
    int TYPE_COMBO_BOX = 7;
    int TYPE_PANEL = 8;
    int TYPE_LIST = 9;
    int TYPE_TABLE = 10;
    int TYPE_SEPARATOR = 11;
    int TYPE_SPINNER = 12;
    int TYPE_TABBED_PANE = 13;
    int TYPE_PROGRESS_BAR = 14;
    int TYPE_SLIDER = 15;
    int TYPE_SCROLL_PANE = 16;
    int TYPE_SCROLL_BAR = 17;
    int TYPE_IMAGE = 18;
}

// Layout callback interface (from core module)
interface LayoutCallback {
    // Callback methods for layout events
}