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
Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

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
}
Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/com.miglayout/miglayout-swing@11.4.x
Publish Source
CLI
Badge
tessl/maven-com-miglayout--miglayout-swing badge