Я создал JFrame
, инициализированный BorderLayout
и JScrollPane
в качестве элемента CENTER
.
Панель прокрутки установлена с политиками VERTICAL_SCROLLBAR_ALWAYS
и HORIZONTAL_SCROLLBAR_NEVER
.Цель моего frame
- иметь контролируемую ширину, в то время как высота должна увеличиваться / уменьшаться по мере добавления / удаления данных.
Внутри моего scroll pane
я добавил простой JPanel
(давайте вызовемэто панель содержимого), которая инициализируется с помощью FlowLayout
(и LEADING
policy).
Чтобы проверить это, я просто заполняю content panel
20 JLabel("Item " + n)
компонентами, где n
является счетчиком цикла.
Я бы ожидал увидеть мой labels
в одной строке, если frame
достаточно большой, а метки будут перенесены на другие строки, когда я уменьшу ширину.Но вместо этого отображается только одна строка без переноса ... когда-либо.
Кто-нибудь знает, почему flow layout
не переносится, когда задействован scroll pane
?
ЕслиЯ удаляю scroll pane
все вместе и помещаю content panel
прямо в frame
, желаемый эффект обертывания происходит, но если высота frame
уменьшается меньше, чем высота content panel
, она просто исчезает.
Идея состоит в том, что я хочу, чтобы мой labels
был обернут при необходимости, но также всегда должен быть видимым, если это означает необходимость прокручивать вверх / вниз.
Есть предложения, как это исправить?
Спасибо.