Объект Constraints имеет свойства x, y, width и height.
Однако в объекте Constraints эти свойства имеют значения Spring вместо целых чисел.
Кроме того, объектом Constraints можно манипулировать как четырьмя краями – север, юг, восток и запад.
Объект Spring имеет четыре свойства – минимальное, предпочтительное и максимальное значения и фактическое (текущее) значение.
Объект Spring можно представить в виде механической пружины, которая обеспечивает корректирующее усилие, когда пружина сжимается или растягивается от ее предпочтительного значения.
Таким образом, компоновку SpringLayout можно представить, как набор объектов, которые соединены множеством пружин на их краях.
В этом примере мы устанавливаем ограничения методом putConstraint для менеджера SpringLayout.
В которых мы связываем левый край метки с левым краем контейнера.
Верхний край метки с верхним краем контейнера.
Левый край поля с правым краем метки.
Правый край поля с правым краем контейнера.
И нижний край поля с нижним краем контейнера.
JSplitPane
Панель JSplitPane содержит два компонента, разделенных тонкой полосой, которую можно перемещать с помощью мыши, меняя таким образом взаимные размеры компонентов.
Эти два компонента могут располагаться по горизонтали, что определяется константой HORIZONTAL_SPLIT класса JSplitPane, или по вертикали – константа VERTICAL_SPLIT.
Эти константы указываются в конструкторе класса JSplitPane.
Конструктор по умолчанию JSplitPane без аргументов задает горизонтальное расположение компонентов и создает, и размещает две кнопки JButton с надписями «left button» и «right button».
Панель JSplitPane при перемещении разделительной черты может перерисовывать компоненты сразу же по мере передвижения или после окончательной установки разделительной черты.
Это определяется вторым параметром конструктора JSplitPane.
Остальные конструкторы класса JSplitPane кроме расположения задают два компонента панели.
Очень часто компоненты, размещаемые на панели, – это панели прокрутки JScrollPane, содержащие текст, изображение, таблицу или другие компоненты.
Положение разделительной черты отмечается числом пикселов от края панели.
Его можно установить методом setDividerLocation.
Толщина разделительной черты устанавливается методом setDividerSize, параметр которого задается в пикселах.
По умолчанию толщина равна 8 пикселов.
Разделительную черту нельзя переместить так, чтобы компонент стал меньше своего минимального размера.
На разделительную черту можно поместить две небольшие кнопки с треугольными стрелками методом setOneTouchExpandable (true).
При щелчке кнопкой мыши на одной из этих кнопок один компонент расширяется на всю панель, а другой исчезает полностью.
Компоненты можно установить на панель или заменить другими компонентами с помощью методов setLeftComponent, setRightComponent, setTopComponent, setBottomComponent.
JTabbedPane
Мы уже видели менеджер компоновки CardLayout, который показывает в контейнере стек компонентов, отображая только один, первый компонент.
При этом остальные компоненты лежат под первым в определенном порядке.
Панель JTabbedPane добавляет к такой компоновки интерфейс в виде вкладок, с помощью которого пользователь выбирает, какой компонент просматривать, выбирая вкладку, соответствующую требуемому компоненту.
Конструктор по умолчанию класса JTabbedPane создает пустую панель без вкладок.
Первый аргумент конструктора задает расположение вкладок с помощью констант TOP, BOTTOM, LEFT, RIGHT.
Как правило, вкладки помещаются сверху (TOP), но, их можно поместить снизу, слева и справа.
Если все вкладки не помещаются в окно панели в один ряд, тогда они могут располагаться несколькими рядами или прокручиваться, для чего в строке вкладок появляются кнопки прокрутки.
Такое расположение вкладок определяется вторым аргументом конструктора.
Расположение вкладок в несколько рядов устанавливается константой WRAP_TAB_LAYOUT, расположение вкладок в один ряд с прокруткой устанавливается константой SCROLL_TAB_LAYOUT.
Для добавления компонентов в панель используется метод add или метод addTab, в котором можно указать строку заголовка вкладки, разместить объект или иконку на вкладке, определить всплывающую подсказку для вкладки.
Все это можно сделать также методами set класса JTabbedPane.
Вставить вкладку можно также методом insertTab.
Кроме того, можно задать цвет фона вкладки методом setBackgroundAt.
К панели также можно добавить слушателя, в обработчике которого можно получить индекс выбранной панели.
И вам самостоятельное задание – создайте панель JTabbedPane с кнопками, закрывающими вкладки панели.
При этом должен появляться компонент на крае панели, возвращающий вкладку на место.
JToolBar
Компонент JToolBar – это контейнер, который группирует несколько компонентов – это обычно кнопки с значками – в строку или столбец.
Обычно, панели инструментов обеспечивают легкий доступ к функциональности, которая также обеспечивается меню.
Пустая горизонтальная панель создается конструктором по умолчанию класса JToolBar.