首页 > 解决方案 > Java MigLayout illegal constraint 'dock'

问题描述

I'm trying create a button and use a layout manager to dock a button to the right side of a panel, but I get an error of :

Exception in thread "main" java.lang.IllegalArgumentException: Illegal Constraint: 'dock' Unknown keyword.

package testpackage;

import java.awt.Dimension;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

import net.miginfocom.swing.MigLayout;

public class MigPanel {
    JFrame frame = new JFrame();
    JPanel panel = new JPanel();
    MigLayout migLayout = new MigLayout();
    Dimension panelDimension = new Dimension(500,500);
    Dimension frameDimension = new Dimension(1000,1000);

    JButton submitButton = new JButton();
    Dimension buttonDimension = new Dimension(30,30);

    JButton submitButton2 = new JButton();
    Dimension buttonDimension2 = new Dimension(30,30);
    public MigPanel() {
        this.createLayout();
        this.createButton();
    }
    private void createLayout() {
        this.frame.add(this.panel);
        this.frame.setMinimumSize(frameDimension);
        this.frame.setVisible(true);

        this.panel.setLayout(migLayout);
        this.panel.setMinimumSize(panelDimension);
        this.panel.setVisible(true);
    }
    public void createButton() {
        this.submitButton.setSize(buttonDimension);
        this.submitButton.setVisible(true);
        this.panel.add(submitButton, "dock right");
    }
    public void setPanelVisible() {
        this.panel.setVisible(true);
    }

    public static void main(String[] args) {
        MigPanel migPanel = new MigPanel();
    }
}

标签: javalayout-managermiglayout

解决方案


You are using the wrong constraint. Change

  this.panel.add(submitButton, "dock right");

to

  this.panel.add(submitButton, "dock east");

For further reading i suggest this: QuickStart.


推荐阅读