Существуют ли руководящие указания относительно того, сколько элементов управления пространством в Swing должно быть вокруг них?Также возникает вопрос, как именно этого добиться: некоторые менеджеры по расположению поддерживают разрывы между элементами управления;некоторые этого не делают, тогда как вам придется использовать EmptyBorder
- что также может быть неприятно, поскольку границы не перекрываются, и вы можете получить слишком много места между двумя элементами управления 1 - так что выможет потребоваться пропустить одну сторону границы.
Еще одна проблема заключается в том, как выглядят и чувствуют: если я использую явные пробелы или границы, это может выглядеть хорошо в одном LAF, но плохо в другом.Например, Nimbus отлично смотрится с тесными кнопками, так как вокруг них есть дополнительное пространство.Windows LAF по умолчанию просто объединяет их без лишних пробелов.Я понимаю, что это является по существу проблемой платформы, поскольку у Microsoft, Apple, Gnome и других у всех разные рекомендации по этой теме .
Так что, если я тогда добавлю дополнительныерасстояние между элементами управления для размещения Windows или Metal LAF слишком велико в Nimbus и, возможно, в других.
Тогда возникает целая проблема того, как вы создаете свой пользовательский интерфейс, который имеет серьезные побочные эффекты от того, какВы гибки с расстояниями и границами.Поместить все в один контейнер с GridBagLayout
замечательно с этой точки зрения, но ужасно, если вам все еще нужно внести изменения в пользовательский интерфейс.Затем создаем пользовательский интерфейс из нескольких JPanel
с соответствующими менеджерами компоновки.
Короче говоря: Как я могу убедиться, что элементы управления расположены правильно и подходят для LAF, не слишком многохлопот? Может быть, я просто что-то упускаю из виду - с огромным размером Swing, что не исключено.
1 По крайней мере, для меня это было проблемой -может быть, является жизнеспособным решением.Но учитывая простой случай размещения двух элементов управления рядом друг с другом, и вы хотите, возможно, пустоту в пять пикселей вокруг них - между , их также всего пять пикселей, а не десять.Я не вижу способа, как это должно сработать в общем случае, не создавая разные границы в зависимости от направления письма (поскольку левые и правые не обязательно, где идут элементы управления, но, видимо, всегда, где границы).