3.5.2.2.10. ScrollBoxLayout

ScrollBoxLayout − контейнер, который позволяет прокручивать свое содержимое.

gui scrollBox

XML-имя компонента: scrollBox

Пример описание контейнера с прокруткой в XML-дескрипторе экрана:

<groupBox caption="Order" width="300" height="170">
    <scrollBox width="100%" height="100%" spacing="true" margin="true">
        <dateField dataContainer="orderDc" property="date" caption="Date"/>
        <lookupField dataContainer="orderDc" property="customer" optionsContainer="customersDc" caption="Customer"/>
        <textField dataContainer="orderDc" property="amount" caption="Amount"/>
    </scrollBox>
</groupBox>
  • С помощью атрибута orientation можно задавать направление расположения вложенных компонентов − horizontal или vertical. По умолчанию vertical.

  • Атрибут scrollBars позволяет настраивать полосы прокрутки. Может принимать значения horizontal, vertical - для прокрутки по горизонтали и вертикали соответственно, both - для прокрутки во всех направлениях. Установка значения none запрещает прокрутку в любом направлении.

  • contentHeight - устанавливает высоту содержимого контейнера.

  • contentWidth - устанавливает ширину содержимого контейнера.

  • contentMaxHeight - устанавливает максимальную высоту CSS для содержимого контейнера. Например, "640px", "100%".

  • contentMinHeight - устанавливает минимальную высоту CSS для содержимого контейнера. Например, "640px", "auto".

  • contentMaxWidth - устанавливает максимальную ширину CSS для содержимого контейнера. Например, "640px", "100%".

  • contentMinWidth - устанавливает минимальную ширину CSS для содержимого контейнера. Например, "640px", "auto".

<layout>
    <scrollBox contentMinWidth="600px"
               contentMinHeight="200px"
               height="100%"
               width="100%">
        <textArea height="150px"
                  width="800px"/>
    </scrollBox>
</layout>
gui scrollBox 1
Рисунок 22. Полноразмерный scrollBox с компонентом textArea внутри
gui scrollBox 2
Рисунок 23. При уменьшении размера окна появляется полоса прокрутки, чтобы сохранить ширину вложенного компонента

Рекомендуется указывать ширину и высоту содержимого scrollBox, в противном случае, вложенные в scrollBox компоненты должны иметь фиксированные размеры или размеры по умолчанию.

Нельзя устанавливать height="100%" или width="100%", если для контейнера не заданы атрибуты contentHeight и contentWidth.

В компоненте ScrollBox можно использовать горячие клавиши. Задать сочетание клавиш и вызываемое действие можно с помощью метода addShortcutAction():

scrollBox.addShortcutAction(new ShortcutAction("SHIFT-A", shortcutTriggeredEvent ->
        notifications.create()
                .withCaption("SHIFT-A action")
                .show()
));