Java -> MigLayout, как установить разрывы - PullRequest
1 голос
/ 30 декабря 2011

У меня небольшая проблема, я запустил новый проект с графическим интерфейсом, используя MigLayout, и мне нравится макет, но я не могу понять, как устранить все пробелы между самими компонентами, компонентами, а также кадром и пробелом между ячейками и строками

Теперь документация MigLayout описывает использование «gap 0px 0px», где gap [gapx] [gapy] Я установил разрыв в 0px на обеих осях, но разрыв все еще есть, может кто-нибудь помочь здесь, их форумы - город-призрак:)

Я хочу устранить разрыв между JPanels и JFrame. Красная рамка и рамка, и Я хочу удалить отступы внутри красной JPanel. Мой код ниже:

enter image description here

package pe.view;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import net.miginfocom.swing.MigLayout;

public class UI_View extends JFrame
{
    //Content panels
    private JPanel  left   = new JPanel(new MigLayout());
    private JPanel  center = new JPanel(new MigLayout());
    private JPanel  right  = new JPanel(new MigLayout());

    //Content components
    private DefaultListModel list_content = new DefaultListModel();
    private JList   list   = new JList(list_content);

    public UI_View()
    {
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setMinimumSize(new Dimension(800, 600));
        this.setTitle("PropriarityEnvoirment");
        this.setExtendedState(JFrame.MAXIMIZED_BOTH);
        this.setLayout(new MigLayout("gap 0px 0px"));

        String data[] = {"Hi","Hello","WiWi","Hello","WiWi","Hello","WiWi","Hello","WiWi","Hello","WiWi","Hello","WiWi","Hello","WiWi","Hello","WiWi","Hello","WiWi"};
        for(int i = 0; i < data.length; i++)
        {
            list_content.addElement(data[i]);
        }

        left.add(list);

        left.setBackground(Color.red);
        center.setBackground(Color.green);
        right.setBackground(Color.blue);

        this.add(left, "growy, pushy");
        this.add(center, "grow, pushx");
        this.add(right, "grow, pushy");
    }
}

Ответы [ 3 ]

3 голосов
/ 30 декабря 2011

Чтобы удалить пробел между контейнерами в miglayout, вы можете использовать Docking, который похож на BorderLayout.

При стыковке ваш код будет выглядеть примерно так:

...
this.setLayout(new MigLayout());
...
left.add(list, "dock north");
...
this.add(left, "dock west");
this.add(center, "dock center");
this.add(right, "dock east");
...

Надеюсь, это поможет.

0 голосов
/ 16 февраля 2017

Я также нашел его сегодня, и установка вставок в ограничении макета решает его.

panel.setLayout(new MigLayout("insets 0 0 0 0, fill, debug", "", ""));

Если мы не установим его на 0, размер по умолчанию будет установлен и будет огромным,как то, что вы видели в своем проекте.

0 голосов
/ 10 января 2012

Используйте что-то вроде

new MigLayout("", "0[]0[]0[]0", "[]"); 
this.add(left, "gapx 0 0"); 
this.add(center, "gapx 0 0");
...