Установите максимальную ширину панели JGoodies в размер JScrollPane
Я пытаюсь поместить панель JGoodies в JScrollPane только с вертикальной полосой прокрутки; любые элементы больше текущей ширины JScrollPane должны быть усечены. Однако я не могу найти способ сделать эту работу
Пример эффекта, на который я иду
Чего я не хочу, чтобы случилось
Мой текущий код по сути:
FormLayout locationsLayout = new FormLayout("15dlu, pref, 5dlu, pref, 5dlu, pref:grow", "");
locationsBuilder = new DefaultFormBuilder(locationsLayout)
.background(Color.WHITE)
.lineGapSize(Sizes.ZERO);
locationsPane = new JScrollPane(locationsBuilder.getPanel());
locationsPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
locationsPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
//...Sometime later, the user adds a folder...
FormLayout headerLayout = new FormLayout("pref, pref", "pref");
DefaultFormBuilder headerBuilder = new DefaultFormBuilder(headerLayout)
.background(Color.WHITE)
.lineGapSize(Sizes.ZERO);
headerBuilder.add(curContainer.getGuiHeader(), CC.xy(1, 1));
headerBuilder.add(curContainer.getGuiTablePrefix(), CC.xy(2, 1));
locationsBuilder.leadingColumnOffset(0);
locationsBuilder.append(headerBuilder.getPanel(), 6);
Вещи, которые я пробовал
- Различные сочетания min, pref, grow, fill и т. Д. Ничто не изменило это поведение
- Передача пользовательского JPanel, который реализует Scrollable, в конструктор locationBuilder DefaultFormBuilder, как описано здесь, здесь или здесь
- Попытка других вариантов вертикальной полосы прокрутки на JScrollPane
Я не знаю, что еще я могу попробовать. У кого-нибудь есть предложения?
1 ответ
Я никогда не мог найти точный ответ на эту конкретную установку. Я предполагаю, что JGoodies умирает немного хорошо справиться с вложенными макетами.
В итоге я "исправил" это, используя только одну единственную панель для всей области прокрутки местоположений. Это усложняло компоновку: теперь несколько ячеек должны были занимать столбцы, и мне приходилось вручную корректировать смещение столбцов. Но в конце концов это работает