Удалить заполнение JButton в MigLayout - PullRequest
1 голос
/ 03 мая 2010

У меня есть небольшое "всплывающее окно", подобное этому:

Tiny button

Но я не хочу, чтобы отступ вокруг кнопки был настолько малым, насколько это возможно для поставляемого текста.

* +1007 *

По крайней мере, это не работает ... Может ли это быть достигнуто на MigLayout или я должен использовать какой-то другой менеджер раскладки для этого кадра.

Ответы [ 4 ]

4 голосов
/ 03 мая 2010

Каковы ваши ограничения MigLayout, с которыми он был построен? Возможно, вы захотите попробовать novisualpadding, если вы этого еще не сделали. Кроме того, ограничение макета debug будет рисовать рамки вокруг ваших компонентов, чтобы показать, какое пространство они занимают. (Я думаю, что красные пунктирные линии - это размер компонентов, а синие пунктирные линии - это «ячейки», в которых находится компонент.)

// old version
// JPanel panel = new JPanel(new MigLayout());

// new verion
JPanel panel = new JPanel(new MigLayout("debug, novisualpadding"));

Я довольно часто использую MigLayout и нашел "шпаргалку" довольно полезной. http://migcalendar.com/miglayout/cheatsheet.html

1 голос
/ 30 мая 2012

У меня тоже была эта проблема. Я обнаружил, что у меня работает следующее:

this.add(okButton, "width pref:pref:pref");

или

this.add(okButton, "wmax pref");

Кроме того, при использовании вещества внешний вид имеет функцию, при которой минимальный размер всегда слишком широк. Это может быть отменено этим неясным хаком.

okButton.putClientProperty(
    SubstanceLookAndFeel.BUTTON_NO_MIN_SIZE_PROPERTY, Boolean.TRUE);
1 голос
/ 30 марта 2011

Принимая ответ Майка за стартап, я нашел в MIG "CheatSheet" возможное решение вашей проблемы.

Когда вы настраиваете MIGLayout, вы можете указать разрыв между компонентами с целым числом между квадратными скобками, определяющими столбцы и строки.

* 1005 Е.Г. *

MigLayout buttonMig = new MigLayout("", "[139px,grow]0[179px,grow]50[142px,grow][143px,grow]", "0[60px:60px:60px,center]");
1 голос
/ 03 мая 2010

Диспетчер компоновки не должен влиять на способ рисования компонента.

setMargin (...) прекрасно работает при использовании Metal LAF.Возможно, ваш LAF не поддерживает метод setMargin ().Или, может быть, в другом месте есть код, который переопределяет предпочтительный размер кнопки, заставляя ее рисовать так:

Однако, если макет MIG окажется проблемой, вы можете попробовать WrapКомпоновка .

...