Установите максимальную ширину панели 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, в конструктор DefaultFormBuilderlocationBuilder, как описано в документации #1252514">здесь, здесь, или здесь
  • Пробуем другие варианты вертикальной полосы прокрутки на JScrollPane

Я не знаю, что еще я могу попробовать. У кого-нибудь есть предложения?


person TheLQ    schedule 27.06.2013    source источник


Ответы (1)


Я никогда не мог найти точного ответа на эту конкретную настройку. Я предполагаю, что биты JGoodies очень хорошо справляются с вложенными макетами.

В итоге я «исправил» это, используя только одну панель для всей области прокрутки местоположения. Это сделало макет немного сложным: несколько ячеек теперь должны были охватывать столбцы, и мне приходилось вручную настраивать смещение столбцов. Но в итоге работает

person TheLQ    schedule 18.07.2013