настройка горизонтальных и вертикальных полей

#java #swing #jpanel #margins

#java #swing #jpanel #поля

Вопрос:

Каков метод установки горизонтальных и вертикальных полей на панели? (То же самое мы имеем в html style="margins:30px" )

Комментарии:

1. Как упоминали другие, вам следует просто использовать границу (для этого в Swing есть класс EmptyBorder). Однако я бы не рекомендовал жестко кодировать размер полей на панели, особенно с использованием пикселей (размер которых может сильно меняться в зависимости от разрешения мониторов). Предпочтительнее использовать javax.swing. LayoutStyle для вычисления правильных полей. Или, что еще лучше, используйте LayoutManager, который сделает это за вас.

Ответ №1:

setBorder(BorderFactory.createEmptyBorder(int top, int left, int bottom, int right));

И для получения более подробной информации вы можете прочитать документацию о BorderFactory

Комментарии:

1. Почему вы отметили свой собственный ответ как «правильный», когда kleopatra предоставила ответ более 2 дней назад?

2. @ Andrew Thompson это был лучший ответ, который я нашел за последнее время, поэтому я обновил ответы

Ответ №2:

Не знаю html, поэтому просто гадаю о возможных эквивалентах 🙂

  • чтобы установить некоторый пробел между ограничивающим прямоугольником компонента и его содержимым, устанавливаемым свойством является его граница
  • расстояние между различными компонентами в контейнере контролируется LayoutManager (уже упоминавшимся). Зависит от конкретной реализации, насколько тонко это настраивается

Ответ №3:

Используйте BorderLayout для вашей JPanel.

Ответ №4:

Это сильно зависит от типа используемой вами панели. Если это относится к swing, вы могли бы поместить в него Gridbaglayout и указать вставки, как в этом примере

Ответ №5:

для создания базового «разрыва» между J-компонентами с помощью LayoutManagers, размещающих компоненты внутри контейнера

BorderLayout (int horizontalGap, int verticalGap)

GridLayout (int rows, int cols, int hgap, int vgap)

для наиболее сложного графического интерфейса вам необходимо

1 / многократно воспроизводимые JPanels (также с разным LayoutManager для каждой JPanel)

2 / с помощью того, как использовать GridBagLayout (путем умножения JPanels с разными LayoutManegars для каждой JPanel …)

3/ используйте какой-нибудь пользовательский LayoutManager