Как аккуратно сделать отступ для некоторых компонентов, используя макеты Java Swing - PullRequest
5 голосов
/ 08 января 2011

Используя Swing, каков лучший способ сделать отступ для некоторых компонентов под флажком или переключателем? Мне нужно сделать что-то в стиле Firefox 3.6 «Параметры-> Конфиденциальность», где некоторые флажки имеют отступ под «основным» флажком. Я могу использовать любой стандартный макет AWT / Swing, включая GroupLayout. У меня также есть JGoodies FormLayout для меня. Сначала я попытался использовать смещение setLeadingColumn в FormLayout, но казалось, что оно не будет работать хорошо, если я не сделаю отступ под разделителем. Может быть, я просто делал это неправильно?

Есть ли что-то похожее на установку горизонтального отступа в SWT GridLayout? Это было бы идеально.

Я работаю с JDK1.6.0_23.

Ответы [ 4 ]

3 голосов
/ 08 января 2011

Создать JPanel для подкомпонентов.Затем вы можете добавить EmptyBorder на панель с требуемым отступом.

3 голосов
/ 08 января 2011

Есть несколько способов сделать это:

  1. Установить границу каждого компонента на: new EmptyBorder (0, 10, 0, 0).

  2. Использовать GridBagLayoutи используйте Inset (0, 10, 0, 0) для заполнения левой стороны.

  3. Используйте GridBagLayout и установите основной флажок в два столбца, в то время как вспомогательные флажки смещены, поместив их в крайнем правомстолбец.

  4. Поставьте пользовательские значки-флажки, к левым краям которых добавлено свободное место.

и т. д.

Мой совет - изучить GridBagLayout - его несколько громоздко использовать, но он дает вам практически все возможности макета, которые вы можете захотеть.Материал JGoodies полезен для случаев, когда вам нужно определенное автоматическое поведение размеров столбцов, которое GBL не даст вам без дополнительного кода с вашей стороны.

0 голосов
/ 08 января 2011

Другой вариант - использовать SpringLayout и добавить отступы.

0 голосов
/ 08 января 2011

Вы должны быть в состоянии выполнить это очень хорошо с FormLayout, просто добавьте еще один столбец для подпунктов, и у основного элемента будет 2 столбца.

...